Cocoaはさっぱり!!! version.16

このエントリーをはてなブックマークに追加
1名称未設定
■関連スレ
Macでプログラミング{10}
http://hibari.2ch.net/test/read.cgi/mac/1248682344/
Mac OS XをUnixとして使ってる人の為のスレ 16
http://hibari.2ch.net/test/read.cgi/mac/1302132772/
Xcode part8
http://hibari.2ch.net/test/read.cgi/mac/1265669504/
MacでJava その4
http://hibari.2ch.net/test/read.cgi/mac/1214284891/
AppleScript アップルスクリプト 質問、発表 4
http://hibari.2ch.net/test/read.cgi/mac/1256127156/
[SDK]iPhoneアプリ開発初心者質問箱15[touch][iPad]
http://hibari.2ch.net/test/read.cgi/mac/1305798708/

Objective-C [ObjC part:5];
http://hibari.2ch.net/test/read.cgi/tech/1279730299/
【マック】Macintoshプログラミング質問箱
http://hibari.2ch.net/test/read.cgi/tech/1113058054/
【Cocoa】Macプログラマのスレ【Objective-C】
http://hibari.2ch.net/test/read.cgi/prog/1214208397/

■前スレ
Cocoaはさっぱり!!! version.15
http://hibari.2ch.net/test/read.cgi/mac/1277992217/
2名称未設定:2011/06/04(土) 13:42:49.15 ID:1uDUrmAL0
3名称未設定:2011/06/04(土) 13:43:22.21 ID:1uDUrmAL0
4名称未設定:2011/06/04(土) 13:44:01.49 ID:1uDUrmAL0
■書籍
【Objective-C】
詳解 Objective-C 2.0改訂版「荻原本」(ソフトバンククリエイティブ 10/12)荻原剛志
Dynamic Objective-C「ダイナミック本」(BNN新社 09/3)木下誠

【Cocoa全般】
HappyMacintoshDevelopinTime 2nd Edition「黒本」(BNN新社 04/6)木下誠
HappyMacintoshDevlopingTime 3rd Edition「赤本」(BNN新社 06/5)木下誠
たのしいCocoaプログラミング「たのここ」(BNN新社 08/8)木下誠
CocoaではじめようMac/ iPhoneプログラミング入門(秀和システム 09/3)中野洋一
Mac OS X Cocoaプログラミング第3版「ヒレガス本」(ピアソンエデュケーション 09/11)アーロン・ヒレガス

【iPhone】
iPhone デベロッパーズ クックブック「エリカ本」(ソフトバンククリエイティブ 09/2)エリカ・サドゥン
iPhoneアプリケーションプログラミング(技術評論社 09/6)新居雅行
iPhone SDK アプリケーション開発ガイド(オライリージャパン 09/9)Jonathan Zdziarski
iPhone SDK 3 プログラミング大全(アスキー・メディアワークス 09/9)木下誠
基礎からのiPhone SDK 改訂版(ソフトバンククリエイティブ 09/10)鶴薗謙吾

ほか山ほど
5名称未設定:2011/06/04(土) 13:48:42.50 ID:ai/zYS7w0
ココアはやっぱり森永
6名称未設定:2011/06/05(日) 16:43:57.58 ID:4uUObKRC0
スレチはチラシの裏にでも書いてろ。
7名称未設定:2011/06/06(月) 14:43:43.28 ID:8c0RYdtc0
Cocoa bindigsについてよくわからない事があるんだけど、
IBを使ってbindを設定するときのbind相手が何を繋ぐべきかってのを知る方法ってあるんでしょうか?
例えば、NSColorWellのvalueにはNSColorをbindする。でもここにbindするのは何かってのは
IB上などからは解らないので知ってるものならいいけどそうでないのは結構難儀するんですが。
8名称未設定:2011/06/06(月) 15:28:58.90 ID:sSEElHN00
ツールチップにも出た気がするが、ドキュメントにあったような。
ここに全部のってるかな?
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CocoaBindingsRef/CocoaBindingsRef.html
9名称未設定:2011/06/08(水) 16:16:26.07 ID:fMFk2s/f0
id <NSMenuItem> menuItem;
menuItem = [[[NSMenuItem alloc] initWithTitle:@"Click Me" action:nil keyEquivalent:@""] autorelease];



NSMenuItem *menuItem = [[[NSMenuItem alloc] initWithTitle:@"Click Me" action:nil keyEquivalent:@""] autorelease];

の違いを教えてください
10名称未設定:2011/06/08(水) 18:33:49.30 ID:rTSZEj/j0
上の書き方はidが NSMneuItem プロトコルに適合したものなら何でも受け入れると宣言してある。

NSMenuItemプロトコルはLeopardで廃止になったので今は原則下の書き方をする事になる。
11名称未設定:2011/06/08(水) 18:36:38.73 ID:x/Sa2nGa0
>>9
昔はNSMenuItemというプロトコルに適合したオブジェクト(クラスは何でもいいけど、ほとんどの場合NSMenuItemクラス)
をメニュー項目として使っていたんだけど、今はNSMenuItemというクラス(かサブクラス)のインスタンスを使う
つまり上は古い書き方。ずいぶん前に非推奨になったはず
12名称未設定:2011/06/08(水) 19:25:30.24 ID:9J2tsECX0
わかりやすい回答、大変ありがとうございます。
と言う訳で、大量修正の発生です(笑)
LIONでも耐えてくれるかなあ。
13名称未設定:2011/06/08(水) 19:34:48.72 ID:4aqmGxsS0
どんだけ古いコード
14名称未設定:2011/06/08(水) 19:35:24.48 ID:rTSZEj/j0
既に書いてあるコードのメンテナンスなら別に動かなくなったりはしないので
時間との兼ね合いで考えるのがいいんじゃない?
15名称未設定:2011/06/08(水) 19:54:06.08 ID:kVTYB7+I0
s/id¥s*<NSMenuItem>¥s*/NSMenuItem */
でいいやん
16名称未設定:2011/06/10(金) 01:48:09.31 ID:R9BTYs5c0
RubyCocoaとかPythonとcocoaのスレってないの?
17名称未設定:2011/06/10(金) 06:14:19.77 ID:bRofu5DFi
余りの過疎さに消えていったな
18名称未設定:2011/06/10(金) 06:48:39.08 ID:EGfnoLQA0
まあここでいいんじゃないの?Cocoaだし
19名称未設定:2011/06/10(金) 07:47:51.47 ID:OndgszEp0
わざわざrubyとかで苦労するくらいなら、最初からobj-c選ぶよ
20名称未設定:2011/06/10(金) 18:59:45.61 ID:XKJRmHV60
>>最初からobj-c選ぶよ
まったく新規で始めるやつがRubyCocoaかObjective-Cで迷うわけないだろJK
21名称未設定:2011/06/10(金) 19:14:47.41 ID:QOJkGY030
ハイパーカードでおk
22名称未設定:2011/06/11(土) 00:58:16.66 ID:3XBV7rHm0
OCはつぶしが効かなさすぎるし、なんか変態言語って感じで嫌い。
23名称未設定:2011/06/11(土) 01:52:26.12 ID:KbBmnsfa0
あほくさ。
だったら、C#でも使ってろよ。
24名称未設定:2011/06/11(土) 05:28:24.37 ID:gUn0hcco0
そこはJava()だろ
25名称未設定:2011/06/11(土) 07:12:39.43 ID:qER5+xcGP
ARCすげー。Automatic Reference Counting。retain/releaseさようなら。
26名称未設定:2011/06/11(土) 08:37:53.50 ID:IPoIeJaG0
Is GC (Garbage Collection) deprecated on the Mac?
GC remains an option for development in Mac OS X v10.7.
You are strongly encouraged to consider ARC for new
development. For existing codebases (both manual
reference counting and GC), you are encouraged to
“test the waters.” This is, however, a non-zero amount
of work and you should weigh that effort with your other
priorities.

要は、GCは要らない子だってことじゃん。なんだかなぁ。
27名称未設定:2011/06/11(土) 09:26:49.56 ID:/DFpCIlC0
>GCは要らない子
周知の事実
28名称未設定:2011/06/11(土) 11:00:16.36 ID:O3zjEiD50
さよなrelease
29名称未設定:2011/06/11(土) 11:05:51.10 ID:aSpQ1F0gi
autorelease最強
30名称未設定:2011/06/11(土) 12:06:10.29 ID:8ad4pxdp0
http://developer.apple.com/jp/technologies/ios5/
...新しいApple LLVMコンパイラでARCを有効にすると、retainまたはreleaseを再度タイプする必要がなくなり、...
再度タイプってことは一度は打つのか?よくわからんな。
31名称未設定:2011/06/11(土) 12:15:12.41 ID:8ad4pxdp0
http://developer.apple.com/technologies/ios5/
...you will never need to type retain or release again,...
もうタイプすることは無いだろうってことかな?英文見てもわからん。
32名称未設定:2011/06/11(土) 13:03:58.84 ID:KbBmnsfa0
そりゃ、二度とタイプする必要がなくなるってことだ。
つまり、コードからratainとreleaseが消えると。
33名称未設定:2011/06/11(土) 14:34:06.69 ID:2LcBrBx80
でもやろうと思えば ARC の裏をかけるだろう。
34名称未設定:2011/06/11(土) 15:18:49.31 ID:OSHqOa+o0
コンパイラサポートって事だから静的解析の先にあるものかと思ったんだけど違うのか?
35名称未設定:2011/06/11(土) 15:39:29.70 ID:OSHqOa+o0
昔ながらのポインタの配列のキューとかでもちゃんと動くのかな?
昔ながらのポインタの配列のキューの場合、
プッシュするときに以前の値を上書きするだけでポップ時には配列に何もしないからね
36名称未設定:2011/06/11(土) 17:37:31.74 ID:a7eKnzq60
StoryBoardも、Dashcodeより簡単かも。
相当イッテマスネ。
37名称未設定:2011/06/11(土) 18:49:16.50 ID:qER5+xcGP
>>29
autoreleaseもさようなら。
38名称未設定:2011/06/11(土) 18:53:33.88 ID:qER5+xcGP
>>33
コンパイル通らない。

バイナリはiOS4/10.6でもOK!!

>>36
StoryboardはSegueのエディタだよ。
ViewControllerのナビゲーションを抽象化する。
Dashcodeとは全然違う。
39名称未設定:2011/06/11(土) 19:48:27.58 ID:b+OGWiVr0
64bitの.prefPaneはGC必須だった気がするが
40名称未設定:2011/06/11(土) 19:54:13.17 ID:/DFpCIlC0
Storyboardってフレームワークが増えたのかと思ってた。アプリケーションが増えたの?自分でdev見ろって話だが。
41名称未設定:2011/06/11(土) 20:26:41.27 ID:qER5+xcGP
>>40
Class。設定はXcodeのIBもどき。
42名称未設定:2011/06/12(日) 03:20:51.21 ID:Wzl1Qf6/0
全然違うのか、IBでInterfaceのモックアップだけなら大分作れそうなところとか、良さそうだけどね。
43名称未設定:2011/06/12(日) 06:53:12.13 ID:aCbOmgoK0
画面1 → 画面2 →……
ができるっぽい
nibはたぶん消滅
44名称未設定:2011/06/12(日) 07:03:47.41 ID:aCbOmgoK0
あ、無くなりはしないか
覚えることたくさんあって大変ね
45名称未設定:2011/06/13(月) 02:44:15.96 ID:7hwy3eRt0
まだ開発中なのだから何があってもおかしくないんだが、
ARC 有効にした時の fast enumeration の挙動が変だね。

for (id obj in [NSArray arrayWithObjects: @"one", @"two", @"five", nil]) {
^{ assert(obj != nil); }();
}

block の中で obj が nil になっちゃうよ。
46名称未設定:2011/06/14(火) 16:16:18.36 ID:lgE0ta9l0
位置情報のシミュレータでの動きは面白そうだけど、どうもUsetLocation の取得が出来る時とできない時があるみたい。
まだ、不完全なのかな?
47名称未設定:2011/06/14(火) 16:17:22.46 ID:lgE0ta9l0
表示はされてるのに 青丸 、
ゲット出来ない
48名称未設定:2011/06/22(水) 23:24:57.59 ID:N9wl1Z2RP
ファイルカットプロ。Cocoaで作り直しているな。プラグインのフレームワークをみたらObjective-C
になっている。

49名称未設定:2011/06/23(木) 02:36:59.80 ID:qLs4eXVj0
発表の時Cocoaベースで作り直したって言ってたじゃん
50名称未設定:2011/06/23(木) 03:35:17.80 ID:6azn1b/a0
>>47 ウチでも同じ。まだ、不完全かな。
Placemark が色々かわって、 geocording は MapKit でなくて CoreLocation でいけるよみたいな?
51名称未設定:2011/06/28(火) 18:08:29.46 ID:mng6QCQM0
Cocoaネイティブなゲームを作りたいのですが、ゲームパッド関連のAPIってありますか?
52名称未設定:2011/06/28(火) 18:31:08.72 ID:HQVEq+V80
53名称未設定:2011/06/28(火) 18:36:12.92 ID:yFtS2bVE0
>>48 >>49
cocoaで作り直したはいいけど、機能削除、劣化で大不評みたいだね。
54名称未設定:2011/06/28(火) 18:44:14.96 ID:e69WmxfVP
間に合わなかったんだろ
プレミアに負けたくない一心で早とちったな
55名称未設定:2011/06/28(火) 18:49:23.62 ID:uUuARLqYi
iMovieでも9でタイムライン外して、時間やフレーム単位での映像と音の合わせが
出来なくなったし、おかしな方向に行ってるのは確かだよ。
56名称未設定:2011/06/29(水) 13:11:59.18 ID:9D9fDtj2i
http://taisyo.seesaa.net/article/212337517.html
うわあなんかメソッドの命名が素人臭くない?(笑)
57名称未設定:2011/06/29(水) 13:26:33.79 ID:nwLWQTx00
>>56
確かにw
参考までにお前のヘッダーファイルを晒してみてくれよw
58名称未設定:2011/06/29(水) 13:34:45.14 ID:C/4grpnd0
ていうか、よく見たら引数の型が全部idで引数名がarg1って。
これで本当にいいのか?
59名称未設定:2011/06/29(水) 14:13:28.58 ID:IMvR5y2a0
>>56-58
class-dumpの出力に何を高望みしてるのかな?
60名称未設定:2011/06/29(水) 14:20:15.82 ID:nwLWQTx00
釣りの邪魔をしないでくれ
61名称未設定:2011/06/29(水) 14:27:10.30 ID:XBJL/J5Mi
あーそうなんだ。それは知らなかった。
クラスダンプとかしたことなかったもんで(笑)
やっぱり俺は素人なんだなあ。
62名称未設定:2011/06/29(水) 20:54:37.64 ID:WbmzFZfo0
class-dumpさんを馬鹿にするのはやめろ
63名称未設定:2011/06/30(木) 18:15:59.92 ID:iKAalbPNi
質問です。
NSCalendarDateが10.6でdeprecatedなのですが、class referenceに代替クラスの記述がありません。

下記のコードを対応させたいのですが、どのように変更すればいいのでしょうか?
よろしくお願いします。(これとこれを使え、みたいな)

//
// "Sat, 24 Oct 2009 14:20:33 +0900" -> "2009/10/24 14:20" に変換する
//
NSString *dateString = @"Sat, 24 Oct 2009 14:20:33 +0900";

NSCalendarDate *calDate = [NSCalendarDate dateWithString:dateString calendarFormat:@"%a, %d %b %Y %H:%M:%S %Z"];
NSString *newDateString = [calDate descriptionWithCalendarFormat:@"%Y/%m/%d %H:%M"];

NSLog(@"newDateString=%@", newDateString);
64名称未設定:2011/07/01(金) 00:02:43.63 ID:rHWPS2BY0
65名称未設定:2011/07/01(金) 00:29:20.00 ID:rHWPS2BY0
NSString *dateString = @"Sat, 24 Oct 2009 14:20:33 +0900";
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss zzzz"];
NSLog(@"Date : %@", [inputFormatter dateFromString:dateString]);
[inputFormatter release];

Localeをちゃんと設定した方が安心かもしれない。NSDateになった後は好きに料理してくれ。
66名称未設定:2011/07/01(金) 23:27:36.54 ID:BdFY4B3/0
hdmi取り込みで映像加工とかだとまだココアだけじゃ無理過ぎるな。
h264ファイル直接取り込みもクイックタイムがサポートしてないし。
本格的なアプリ作ろうとするとココアだけじゃ完結しない。

なんかジャバアプリで作ってますって言いつつ裏でジェーエヌアイでごにょごにょしてるようなごまかしを感じるよな。
全部ココアで出来る日はいつなんだろう。
67名称未設定:2011/07/02(土) 02:13:49.03 ID:e7PPdLC40
必要に応じてライブラリ読み込めばいいじゃない。
68名称未設定:2011/07/02(土) 02:26:26.45 ID:fy4+9zzB0
>>66
http://developer.apple.com/library/ios/#DOCUMENTATION/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188
これがほぼそのままMac対応になるので、そうなったら希望のことは出来るようになるはず。
まあ、「本格的」がどのぐらいを指すかはしらないけど、FCPXはこれを先行して使ってきているはずで、
バッシングも受けているが一応完結している。。
69名称未設定:2011/07/02(土) 02:26:59.72 ID:fy4+9zzB0
>>68
Lionでね
70名称未設定:2011/07/02(土) 08:16:22.94 ID:HrpOi9Yn0
71名称未設定:2011/07/02(土) 10:27:45.83 ID:6foep1ykP
GMc!
72名称未設定:2011/07/02(土) 11:25:55.23 ID:QkNWOdJs0
>>70
この人、本当にマク持っているのかな?妄想だけじゃ。
73名称未設定:2011/07/02(土) 12:09:47.13 ID:pSI6ie230
妄想じゃなくてネガキャン
いわゆる自宅ステルスマーケッター
74名称未設定:2011/07/02(土) 12:20:12.77 ID:ZA/FCQSt0
なるほど、基地外か。
75名称未設定:2011/07/02(土) 19:31:57.95 ID:2aLpkwPJ0
>>64 >>65
参考になりました。ありがとうございます。
しかし、面倒くさくなりましたね。
76名称未設定:2011/07/02(土) 20:02:20.37 ID:e7PPdLC40
NSDateのあれは、いい加減なんとかしてほしいと思う。
77名称未設定:2011/07/02(土) 22:46:32.42 ID:JuLG2BJr0
何でNSCalendarDateをdeprecatedにしたのかわからんね。
おかげで面倒くさい。

俺はNSDate, NSCalendar, NSDateCompnentsの合わせ技を使ってる。
確かリファレンスに出ていたと思うけど
78名称未設定:2011/07/03(日) 18:54:09.36 ID:ZcXC4z0z0
releaseについて質問なのですが、下記のコードの場合
imageのreleaseはどこですれば良いのでしょうか?
(コードはちょっと適当です)

- (NSImage*)imageFromFile:(NSString*)filePath
{
// NSImage *image = [[[NSImage alloc] initByReferencingFile:filePath] autorelease];
NSImage *image = [[NSImage alloc] initByReferencingFile:filePath];
return image;
}
79名称未設定:2011/07/03(日) 19:25:31.45 ID:dadLZpo10
returnする時に、autoreleaseしたものを返す。
後は、呼び出し元が管理すれば良い。
80名称未設定:2011/07/05(火) 00:16:47.14 ID:z1pSK4Uk0
>>77
もともとNSDateのサブクラスでCalendar計算とCalendar文字列の扱いという複数の機能を
一緒に持っていたけど、一方はLocaleに非常に影響されている上、ISOカレンダーとの互換の
問題もあったので、
NSCalendarDate.h に書いてある通りそれらの機能をNSCalendarとNSDateFormatterに分けた
分けたら当然重複機能を矛盾なくメンテナンスするのは面倒なのでdeprecated。

現状のものと現状で互換があるものを作るのはそんなに大変じゃないので
必要だと思えば自分で作ってメンテすれば良い。
81名称未設定:2011/07/05(火) 02:17:10.00 ID:qtrjL2PT0
HID Utilitiesの使い方がさっぱりわからない
日本語ドキュメントどこかにないでしょうか?
82名称未設定:2011/07/05(火) 10:23:22.74 ID:kCoiKUpN0
頑張って英語読め。
83名称未設定:2011/07/05(火) 12:18:57.07 ID:kCoiKUpN0
Queueとかは解らんけど、値とるだけならこんな感じかな?
IOHID***GetTypeIDとか省略してるんで、TN2187とかみて適宜いれてくれ。
間違ってるところはツッコミよろしく。
http://paste.bradleygill.com/index.php?paste_id=301204

さっぱり解らんだけでは、
何がしたいのか解らんからこっちが回答できるレベルの質問かどうかも解らん。
84名称未設定:2011/07/08(金) 11:47:46.08 ID:YTs4sl8P0
他人の気持ちがさっぱりわからない
何語でもいいからドキュメント欲しいわ
85名称未設定:2011/07/08(金) 12:23:44.46 ID:0XbcuwQK0
流石に英語ならあるだろ。
86名称未設定:2011/07/11(月) 04:14:44.89 ID:bJcQN9YF0
>>80
「ISOカレンダーとの互換の問題」とは具体的にはどういうことでしょうか。
87名称未設定:2011/07/11(月) 10:42:34.91 ID:Zz6KkASV0
deprecatedはいいんだけど、それが本当に使えなくなるのは
いつなのかわかる資料はありますか?

ここらへんは実はグダグダ?
88名称未設定:2011/07/11(月) 11:18:46.81 ID:S3463i2L0
ないよ。宣言されてるんだから、突然廃止されても文句は言えない。
宣言されたOSの二世代くらい後と見ておけばいいんじゃないか。
89名称未設定:2011/07/11(月) 14:25:41.74 ID:tABL9fOY0
>>86
ISO 8601 読め
90名称未設定:2011/07/11(月) 15:53:52.40 ID:FeQ/U6Sx0
俺的には1世代後かな。deprecatedになって即使えないってのもたまにあるし近年スパンが短い気がする。
91名称未設定:2011/07/11(月) 16:08:05.32 ID:Ru7Yk1+T0
10.5で大量に出たdeprecatedが10.7で使えなくなると、
大量に爆死するアプリが出るんじゃないかな。
92名称未設定:2011/07/11(月) 16:09:32.93 ID:BowlQNl5P
64bitでバッサリはたくさんあるぞ。
93名称未設定:2011/07/11(月) 16:27:24.05 ID:n6zIJVe5i
一番欲しいのは、OSヴァージョンとdeprecatedのAPIが掲載された一覧なんだけど、なんでないんだろ?
いつもリファレンスライブラリで調べたいAPIの所で偶然見つけるしか方法が無いのかな?
そんなわけ無いと思うんだけど、いくらぐぐっても一覧らしきものが出でこない。

みんなどうやって調べてるの?
94名称未設定:2011/07/11(月) 16:37:33.67 ID:TPkmGxEV0
一番簡単なのはSDKを切り替えてビルドする
古いSDK取って置かないとダメだけどね

xcodebuild で -sdk 使えば早そうなきがする
95名称未設定:2011/07/11(月) 16:40:25.20 ID:S3463i2L0
>>93
ヘッダにも出てる。
96名称未設定:2011/07/11(月) 16:47:43.71 ID:khyyOrtg0
根本的にXcodeは常に最新にしないとだめですか10.5でXcode3.xとかだめですかそうですか。
97名称未設定:2011/07/11(月) 16:51:23.74 ID:S3463i2L0
対応OS次第
98名称未設定:2011/07/11(月) 17:00:51.22 ID:TPkmGxEV0
grep -R --include='*.h' DEPRECATED /path/to/SDK | ほむほむ
とかやれば一覧表作れそうだけど?
99名称未設定:2011/07/11(月) 18:57:31.02 ID:apdQMTlF0
>>93
> いつもリファレンスライブラリで調べたいAPIの所で偶然見つけるしか方法が無いのかな?

俺としては、それで不都合ないのだが。

仮に一覧があったとして、それをどう活用する?
100名称未設定:2011/07/11(月) 19:05:18.52 ID:dyi64kpP0
え?
自分のプロジェクトでdeprecatedなメソッドがないか調べるんですよ。
101名称未設定:2011/07/11(月) 19:13:09.67 ID:TPkmGxEV0
警告出るでしょ?
102名称未設定:2011/07/11(月) 19:21:26.81 ID:apdQMTlF0
ビルドしたら、deprecatedなメソッドはワーニングになるよね?
Xcode4なら、テキストエディタに書いた瞬間にワーニング表示されるよね?
ビルド設定の「Warn About Deprecated Functions」は、デフォルトで有効だよね?
103名称未設定:2011/07/11(月) 19:23:31.61 ID:dyi64kpP0
104名称未設定:2011/07/11(月) 19:31:59.88 ID:TnqF3M6L0
「新しいMacを買えない貧乏人はアプリを作らなくて結構」

ジョブズ様はそう仰っています。
105名称未設定:2011/07/11(月) 19:43:47.34 ID:FeQ/U6Sx0
10.6も用意せずに10.6対応のアプリを作ろうとしてるのか。
106名称未設定:2011/07/11(月) 19:46:33.06 ID:apdQMTlF0
あれ?
deprecated警告ってgcc4.0ぐらいでも実装されてたよね?
Xcodeだけじゃなく、gccのバージョンも古い?
まさか、deprecatedになっていない古いSDKを選択してないよね?
107名称未設定:2011/07/11(月) 20:06:01.79 ID:/xXr8KUA0
>>103
ほとんどの場合、deprecatedになると同時に代替メソッドが追加されるから、
古いSDKでは新しいSDKのdeprecatedは回避出来ない。
108名称未設定:2011/07/11(月) 20:19:27.62 ID:gVpM3qFp0
みんな最新OSに最新開発環境なんだ、いいなあ。
これからもずっとそうなんだ、凄いなあ。

自分の環境環境より上のバージョンで何が非推奨になるかなんて
知る必要もないんだ、羨ましいなあ。
109名称未設定:2011/07/11(月) 20:35:18.96 ID:0qUhdgTW0
そういう古い開発環境を使ってる割には知りたがりの人のために
>OSヴァージョンとdeprecatedのAPIが掲載された一覧
をPDFにして売ったらそこそこ売れるかも、毎コミさん出番ですよ
110名称未設定:2011/07/11(月) 21:04:16.98 ID:TnqF3M6L0
>>108
バイトでもして新しいMac買え
111名称未設定:2011/07/11(月) 21:11:51.66 ID:/xXr8KUA0
>>108
そんなに最新情報が欲しいなら最新SDKだけインストールすれば良いじゃん
何甘えてるの?
112名称未設定:2011/07/11(月) 22:00:42.67 ID:tABL9fOY0
>>107
でも「deprecated」である限りは、「まだ使えてる」よね。次はなくなる覚悟して作る必要があるだけで。
つまり、これが出てるときのバージョンで回避すれば両方対応のものが作れる。
113名称未設定:2011/07/11(月) 22:02:36.84 ID:HyXbf3uP0
凄いねこりゃ「最新以外は悪」か。別にいいけどさ。
こりゃMacのアプリが増えていかないのもわかるよ。
(変わりに少し前のがどんどん動かないまま放置されていく)
iOSも5になってそろそろ古い環境の人も出てくると思うけど大変だね。

一覧化されたドキュメントが無いことがわかっただけでもありがたい。
それでは、ありがと。
114名称未設定:2011/07/11(月) 22:03:15.56 ID:TqbkC6TF0
何言ってんだこいつ。
115名称未設定:2011/07/11(月) 22:05:41.83 ID:uVQWvkq40
たまに自分の作ったアプリを「deprecated」したくなるときね?
116名称未設定:2011/07/11(月) 22:24:13.70 ID:FeQ/U6Sx0
>>108
最新のと古いの両方環境用意しておくに決まってるだろ。甘えたこと言うならコード書くの辞めちまえ。
>>凄いねこりゃ「最新以外は悪」か。別にいいけどさ。
この思考回路はガキかキチガイ
117名称未設定:2011/07/11(月) 22:26:13.12 ID:/xXr8KUA0
>>114
よくわからんね
分かっても回避出来ないって教えても変な返答来るし、
調べ方教えても試す気どころか、聞く気もないし

「最新以外は悪」じゃなくて「怠惰は悪」だよね
118名称未設定:2011/07/11(月) 23:19:00.28 ID:aADyca2/0
deprecatedなメソッドの中でも呼ぶとコンソールに警告出るようなのが
いち早く消えるのではと勝手に判断しているけどどうなんだろう。

自分は旧OSとの互換性維持のために、カテゴリで共通のメソッドを作って
内部ではrespondsToSelectorで調べてから新メソッドと旧メソッドを呼び分けるようにしている。
119名称未設定:2011/07/12(火) 00:25:00.20 ID:ZZjWZo/t0
>>117
「怠惰が悪」とまでは言わないが、一人で勝手に悩んでいれば良いと思う。
120名称未設定:2011/07/12(火) 00:38:14.50 ID:rAr9sbAw0
ただねぇ。開発はいいんだけど、ユーザーが脱落していくのがね…
121名称未設定:2011/07/12(火) 01:15:59.63 ID:DGa0vBQ30
もうほとんどが10.6に移行してるんだから、10.5とかは切ればいいっしょ。
少なくとも10.4はもういいだろ。
http://heylennon.posterous.com/-mac68os-snow-leopard24leopard
122名称未設定:2011/07/12(火) 01:26:53.57 ID:9xCfikcu0
OSバージョンがどうのよりも
PowerPCを切るかどうか悩むなあと対外的には発言しつつ
実際にはIntelビルドしか用意しない俺が来ましたよ
(PPCユーザにはソース公開してますから自力で...と)
123名称未設定:2011/07/12(火) 11:12:01.46 ID:LzhRYwrgi
何このブロパガンダ
キモチワルイ
124名称未設定:2011/07/12(火) 11:29:41.83 ID:ZZjWZo/t0
プロパガンダって言いたいだけだろ?
125名称未設定:2011/07/12(火) 13:25:19.10 ID:rwWgQweB0
プロパ・ガンダム、出るぞ!
126名称未設定:2011/07/12(火) 13:51:38.24 ID:zZtK8XMt0
ここまでのまとめ

・OS(SDK)バージョンとdeprecatedになったクラス/メソッドが一覧化されたドキュメントは存在しない。
・自分の開発環境より上のバージョンでdeprecatedになったクラス/メソッドを知るには、一つ一つ調べるしかない。
・Macのアプリ開発者たるもの常に最新OSにすべき、また古い環境もそろえるべき、甘えんな。

ここは魁!Cocoa塾かよ(笑)
127名称未設定:2011/07/12(火) 14:35:34.31 ID:ALhZ+EiK0
>>126
おい!
>>115が入ってねえぞ
128名称未設定:2011/07/12(火) 14:48:50.54 ID:uH0gzWu20
>>126
だから SDKだけ最新にしろって言ってるだろ
お前馬鹿か?
129名称未設定:2011/07/12(火) 15:13:16.09 ID:DGa0vBQ30
>>126
男塾ネタはそろそろdeprecated。
130名称未設定:2011/07/12(火) 15:27:08.17 ID:QB4hOKv9P
>>127-129で、
一人だけ必死な奴がまだいるな(笑)
131名称未設定:2011/07/12(火) 17:08:21.81 ID:0/QhedAYP
API diffにdeprecatedは出てるよ。
新しいSDKでワーニング吐かせるのが正解だとおむけそ。
132名称未設定:2011/07/13(水) 10:52:00.82 ID:Ixr6U5NR0
基本的にdeprecatedなコードを使わない限り、古いOSバージョンで開発したアプリも
新しいOSバージョンで動く。(この前提が崩れたら大変だけど)
すなわち、deprecatedなコードを常に把握できれば、新しいバージョンのOSに対応する
アプリの修正も可能であるし、その都度、何がdeprecatedなのかをリファレンスか
ヘッダファイルをしらみ潰しに探さなければならない開発者の負担も軽減する。
133名称未設定:2011/07/13(水) 14:14:32.98 ID:pXyxia6Y0
134名称未設定:2011/07/13(水) 15:45:10.91 ID:R/565lC20
今後、ムービーの再生処理は、NSMovieやQTMovieは非推奨になるの?
deprecateが大量にあるんだけど、代替処理がなくてしかたなくそのまま使ってる。

それどころか64bit環境にも高速に動作する同等の処理がないから、ムービーを細かく制御するソフトが
32bitから身動き取れないんだけど、みんな困ってない?

動画制御なんてやってる物好きが少ないのか…
135名称未設定:2011/07/13(水) 17:31:26.91 ID:wuAiDL8/0
たまに話題になってるから、困ってる奴はいるんだろう。
136名称未設定:2011/07/13(水) 18:24:14.61 ID:fnBBDHOZ0
基本的に通称「QuickTime7系」は無くなると考えておくべきだろう。
コアの開発者(Peterはkinomaばっかりやってるのかな?)が抜けてからQuickTimeは迷走を続けてるからな。
ここら(AVFoundation)で一区切りつけたいんじゃない?

137名称未設定:2011/07/13(水) 22:52:22.35 ID:klpCoYmn0
>>132
> 基本的にdeprecatedなコードを使わない限り、古いOSバージョンで開発したアプリも
> 新しいOSバージョンで動く。

その前提、なんか変じゃない?
古いOSでdeprecatedではないコードが、新しいOSでdeprecatedなコードになるわけだから。
あえて言うなら、
「古いOSでdeprecatedなコードを使っておらず、新しいOSでも運良くdeprecatedにならなければ、
古いOSバージョンで開発したアプリも新しいOSバージョンで動く。」
ということだろう。
138名称未設定:2011/07/13(水) 22:56:27.93 ID:klpCoYmn0
もしかして、新しいOSでdeprecatedではないAPIが、古いOSには存在してない、という可能性を失念しているのか?
139名称未設定:2011/07/13(水) 23:22:10.44 ID:fnBBDHOZ0
まあ、deprecatedなうちはまだ「ある」んだがね。
140名称未設定:2011/07/13(水) 23:39:25.02 ID:klpCoYmn0
>>139

ん?

「新しいOSでdeprecatedでは無いAPI」というのは、
古いOSのときからdeprecatedではなかったか、
または、新しいOSで新設された、という意味なのだが?
141名称未設定:2011/07/14(木) 00:08:56.73 ID:q/FpzKSL0
>>140
>>137
>新しいOSでも運良くdeprecatedにならなければ、
がおかしい。「新しいOSで運悪くdeprecatedになっても動く」
なんで古いOSで動く物が前提なのに新設APIの話が出てくるのやら。
142名称未設定:2011/07/14(木) 10:17:31.10 ID:96UYWWiqP
1. Deprecatedを宣言
2. Headerから落ちてビルド不可
3. Libraryから落ちて実行不可
大抵メジャーアップデートで一つづつ。
143名称未設定:2011/07/14(木) 17:46:14.13 ID:QpYtmvJB0
ヘッダから消えても警告増えるだけじゃないの。
144名称未設定:2011/07/14(木) 17:54:39.98 ID:RQPtoE/v0
>>142
SetCurrentA5()とか凄いのもまだ残ってるぞw
ちなみにA5ってMC68000のA5レジスタのこと
145名称未設定:2011/07/15(金) 11:29:40.05 ID:GGoURjjC0
英語ワールドとも呼ばれていたなぁ。システムだったかToolboxのポインタが
格納されてるんだっけ?

Classic環境が消された時点で用済みだけど、何で残っているのか疑問。
146名称未設定:2011/07/15(金) 13:22:07.63 ID:r86FAd210
>>145
low-memory Globalのポインタが入っているんだが、
こんな事を言う奴が将来に向かって互換性のないアプリケーションを作るんだろうな。
147名称未設定:2011/07/15(金) 20:28:01.10 ID:enOiPCCp0
いきなり殺伐とし始めたな
148名称未設定:2011/07/16(土) 22:17:38.19 ID:/eMmNALc0
例えば10.5でアプリを開発してる人が今度の10.7で動くか確認したい場合、
deprecatedなAPIの一覧がない場合にどうすればいいんですかね?
自分のソースコードからメソッドを一つ一つリファレンスベージを見て探すなんて
ナンセンスだし。

容易に調べる方法がないんですよね?
149名称未設定:2011/07/16(土) 22:28:17.07 ID:OubAZbNe0
Beige
150名称未設定:2011/07/16(土) 22:41:02.19 ID:6tdHQcnF0
>>148
動作確認を怠る開発者がナンセンスだろ。
未確認なら対応OSを10.5までと書いておけ。
151名称未設定:2011/07/16(土) 22:42:58.40 ID:MD+0JTiX0
>>148
あのね、現実には実際に10.7で動作確認するんだから。
そんな一覧で調べて動くなんていうつもり?
152名称未設定:2011/07/16(土) 22:46:44.54 ID:nh8DkmAt0
で、Lionは来週出るのかい。出ないのかい。どっちなんだい。
153名称未設定:2011/07/16(土) 22:54:44.71 ID:iFOcOFs+0
>>151
動いても実際には非推奨だったりするでしょ
154名称未設定:2011/07/16(土) 23:04:23.90 ID:6tdHQcnF0
>>153
10.7でビルドすれば警告出るだろ。
155名称未設定:2011/07/16(土) 23:11:03.07 ID:vD3akg5Z0
それにしても、なぜこの人は「ビルドすれば警告出る」という話を無視し続けるのだろうか?
156名称未設定:2011/07/16(土) 23:16:53.16 ID:6tdHQcnF0
ループが好きなんだろ。
157名称未設定:2011/07/16(土) 23:22:17.75 ID:JaTrUisa0
>>148
http://developer.apple.com/jp/documentation/DeveloperTools/Conceptual/cross_development/Using/chapter_3_section_6.html

ループしたいのだろうけど、このページにもあるようにdeprecatedな関数は無くなってはいないからな。
158名称未設定:2011/07/17(日) 00:32:00.62 ID:eHWxL4ba0
公式から情報探せないようなやつに構う必要無し
そもそも探す気がないからここで煽って聞いてるんだろうが
159名称未設定:2011/07/17(日) 03:27:34.46 ID:2vADQBwk0
やっぱり「最新にしろ」と言うのが大前提なんですね。
そこから話は進まないというか、それ以外のケースは質問すらするなというか。
なんだろう、この排他的な感じは。
160名称未設定:2011/07/17(日) 03:41:25.68 ID:rwKzuezk0
ちょっと聞いときたいんだが、
X codeを4.0.2にできない理由って何なんすか?
161名称未設定:2011/07/17(日) 04:26:12.06 ID:eHWxL4ba0
ダメだこれ、俺はもう匙を投げるよ。時間の無駄
162名称未設定:2011/07/17(日) 06:32:48.73 ID:pcYboX220
誰もやらない奇特な行為をやろうとして、そのくせ
「非効率でナンセンス」ですね。
ときたものだwww
これがゆとり世代ってやつか。
163名称未設定:2011/07/17(日) 06:57:05.15 ID:vOgCaDnJ0
>>159
別に最新にしなくても開発はできるよ。ただ、最新のやつと同じ事が出来ると思うな。
お前の主張はPhotoshop1.0を使ってるやつが「レイヤー使えないなんて排他的だ」と言うのと同じ。
164名称未設定:2011/07/17(日) 07:28:26.74 ID:hqfUAYnF0
一応ここのスレは突き放さない方向性だし、
それを踏まえて、十分親切に答えてたよね。
それで排他的とかなんて恐ろしい子(文字通りの意味で)
165名称未設定:2011/07/17(日) 08:11:23.45 ID:NcL8KaX00
>>159
自分の都合通りに物事が進まないと、
何でも排他的になっちゃうのかw
166名称未設定:2011/07/17(日) 10:13:51.64 ID:E4ASz9260
10.8でなにがdeprecatedになるか解らないのに10.7のSDKでそれを調べる方法がありますか?

って質問に近いな。
167名称未設定:2011/07/17(日) 13:21:27.27 ID:c9qhdCMY0
そもそもdeprecatedなAPIを使ってるかどうか以前に
当該OSで動作確認しないと話にならん
168名称未設定:2011/07/17(日) 14:07:11.39 ID:fzjlEu+Ki
「最新にしろ」「動作環境を複数持つのは当たり前」を連呼するだけで
他の意見は受け入れない、それを排他的と言うんですよ。
まあ、1人の人間がやたら噛み付いているだけですけどね。
169名称未設定:2011/07/17(日) 15:39:57.06 ID:1E0nVdXZP
>>168
Xcode3の10.4SDKを残したまま、Xcode4の107.SDKも入れられるんだから、
面倒くさがってるとしか思えない。古いOSしか動かないマシンだと言うなら、
最新のOSに対応するソフト開発する事自体が無理でしょ。
170名称未設定:2011/07/17(日) 15:39:59.25 ID:NcL8KaX00
>>168
ごめん、他の意見て何?w
171名称未設定:2011/07/17(日) 20:10:28.61 ID:vZOEOl0I0
どもども、いろいろ機能を追加したMacVideoDL v2.0をリリースしました。
http://macapps.web.infoseek.co.jp/macvideodl/

- 対応サイトのアイコン表示を追加
- 動画情報ウィンドウを追加
- サイトのリソース一覧を追加

お試し下さい。
>>172
タブ表示って(私にとって)かなり難易度高いんですよね(笑)
これが実装出来たらほとんど新しいブラウザが完成なんですけど。

>>173
Craving Explorerはすごいですね。再生ページをロードせずに動画ファイルのURLを探すのはすごいです。
一応、SafariのブックマークをMacVideoDLのブックマークにドロップすれば登録出来ます。
フォルダ丸ごとは無理ですけど。

172名称未設定:2011/07/17(日) 20:14:52.66 ID:vZOEOl0I0
すみません。誤爆しました(笑)
マカエレ頼みますよ(笑)
173名称未設定:2011/07/17(日) 23:18:51.24 ID:vOgCaDnJ0
>>170
俺も同じ事おもた
174名称未設定:2011/07/18(月) 00:34:31.91 ID:eICk7WwO0
>>168
最新にする必要はない。が俺は匙を投げたので言えるのはここまでだ。排他的な思考のまませいぜい頑張れ。
175名称未設定:2011/07/18(月) 06:27:09.66 ID:NfwBm6330
敗者的思考ですね、わかります
176名称未設定:2011/07/18(月) 09:06:54.27 ID:IkwL1+1K0
何と戦っているのかな?
177名称未設定:2011/07/18(月) 11:26:44.33 ID:/upoe7Eu0
七人の敵と。
178名称未設定:2011/07/18(月) 23:49:13.11 ID:1OCSS/gb0
>>168
MacOSX10.5でMacOSX10.6対応のアプリを作ろうとしているのか?
もっと具体的な話をしてもらわないと、話はこじれる一方だ
179名称未設定:2011/07/19(火) 00:00:58.55 ID:BbqCKNMi0
intelMacが無い、または英語版Xcodeが使えない。
あるいは、PowerPC版を作る必要がある。

どれかでしょ。
180名称未設定:2011/07/19(火) 05:55:37.00 ID:z5Kv3fLx0
そもそもMacを持っていない。
181名称未設定:2011/07/19(火) 07:41:26.62 ID:wQ9bzVQm0
10.7をスルーする理由は
Hackintoshであるじゃねw
182名称未設定:2011/07/20(水) 14:03:44.85 ID:rLh0zUkZ0
base SDK のバージョンをあげたら NSDeviceBlackColorSpace が deprecated だという警告が出るようになったんですが
この定数は何に置き換えたらいいんでしょうか?ドキュメントやヘッダーファイル見ても代替の指定が出てませんでした。
183名称未設定:2011/07/20(水) 16:40:51.62 ID:SgMNfiQU0
DeviceWhiteにして1.0から引けばいいじゃない
184名称未設定:2011/07/21(木) 12:27:55.99 ID:bipoCgZq0
Lionでの動作確認、みんなもうやった?
185名称未設定:2011/07/21(木) 22:34:44.18 ID:lUDQP0Dj0
Xcode4.1が無料に戻ってますね。
あの600円って、いったい何だったんだ。。。
186名称未設定:2011/07/22(金) 06:30:08.57 ID:4E9OUWYv0
有料ベータテスト
187名称未設定:2011/07/22(金) 09:33:06.02 ID:yXp3meQB0
FaceTimeと同じで会計上の何やかやがあるんだろ
188名称未設定:2011/07/22(金) 10:14:16.82 ID:RBImnIXZ0
まあ600円でとやかくいうな。
開発環境として思えば、ただも同然だ。
189名称未設定:2011/07/22(金) 12:57:49.08 ID:2NE+xNLyP
>>184
実はみんなアプリなんて作ってないから。
というのは冗談半分で、俺のは問題なかったよ。
190名称未設定:2011/07/22(金) 20:08:54.53 ID:F11Gmiy50
>>184
俺の10.4用のソフトは半死した;;
10.6までは正常に動いていたんだけどね
191名称未設定:2011/07/22(金) 21:04:40.97 ID:2wWalnX+0
自作2本は問題なかった。
192名称未設定:2011/07/22(金) 21:32:46.55 ID:n8HDP13F0
NSCalendarDateを使ってるうちのも動いてる。
とはいえ、そろそろ改修するか……。
193名称未設定:2011/07/23(土) 01:09:37.35 ID:aOTllVp10
>>190
それってクラッシュ? それとも単に挙動がおかしい?
実はPowerPCバイナリだとかw
194名称未設定:2011/07/23(土) 02:33:00.53 ID:iqCMgHKc0
>>193
AUGraphでMusicシンセを使っているんだが、音を鳴らそうとした瞬間にクラッシュします。
AUGraphを構築するためのAPIがDeprecatedになっている辺りが原因かと。
195名称未設定:2011/07/23(土) 14:06:54.03 ID:zOdNyiW50
>>185
サーベンス・オクスリー法
196名称未設定:2011/07/23(土) 18:24:42.09 ID:0rR6IpBr0
さよならNSCell
197名称未設定:2011/07/23(土) 23:40:04.45 ID:UCccaLHZ0
IDがCocoaかと思ったら違った
198名称未設定:2011/07/25(月) 11:41:26.46 ID:sMxWCtM80
NSDocumentにカテゴリーを使って内部のインスタンス変数を書き換えてたのが
ダメになった。落ちることはないが、アラートが出まくりで大変。

ま、俺が悪いんだけどね。ただ、欲しいAPIがないので他の手が使えない。
199名称未設定:2011/07/25(月) 18:49:34.05 ID:bXMBXXBV0
その「内部のインスタンス変数を書き換え」って何?
setterとは違うもの?
200名称未設定:2011/07/26(火) 07:37:34.67 ID:1pVwphp30
setterなんだが、そのsetterが用意されてないというか公開されてない
のでカテゴリーで処理した。自己責任だから仕方がない。
201名称未設定:2011/07/26(火) 18:47:05.21 ID:WgIjKFyR0
@implementation NSDocument (hoge)

- (void)setMyWindow1:(id)win {
_window = win;
}

- (void)setMyWindow2:(id)win {
[self setValue:win forKey:@"_window"];
}

- (void)setMyWindow3:(id)win {
object_setInstanceVariable(self, "_window", win);
}

@end

とりあえず、2番と3番は10.7(64bit)ではエラーもアラートも出なかったよ。
1番は10.7(32bit)ならエラー出なかった。

まあ、それ以前にプライベートな部分を使わなくても良いように、設計を見直した方がいいと思うけど。
202名称未設定:2011/07/27(水) 13:24:33.52 ID:peJAsuEe0
>>201
トンクス。

書いたのは1だけど、key value codingの方が安全なのか?
どちらにしても公開されていないインスタンス変数を利用してるので仕様が変更
されたりすると一発でアウトになってしまう。公開されていないのを勝手に使って
いるわけだから文句も言えない。

別の方法を考えるか、最悪諦めるか、だね。
203名称未設定:2011/07/28(木) 18:58:38.37 ID:enBHFXOE0
>>202
で、結局プライベートに手を出してまで何をしようとしていたの?
俺としては、NSDocumentのプライベートに興味をそそられる部分は無いのだが。
204名称未設定:2011/07/29(金) 18:58:03.44 ID:L5a8NMT5O
複数のウインドウを開くアプリで、ウィンドウ1(全面NSTextView)、ウインドウ2(HUDパネル、NSTextFieldをもつ)があります。
起動させるとファーストレスポンダがウインドウ2のNSTextFieldにフォーカスされるのですが、これをウインドウ1のNSTextViewにフォーカスさせるようにするには、どうすればいいのでしょうか?
205名称未設定:2011/07/29(金) 19:39:52.99 ID:kCiFJHtc0
ウィンドウ1をmainWindowに指定するのかな。たぶん。
206名称未設定:2011/07/29(金) 21:50:05.17 ID:ivuphmUG0
正確にはmainWindowじゃなくて、keyWindowの方かな?

[window1 makeKeyAndOrderFront:self];

[window2 orderFront:self];

起動時に上記コードでウインドウを表示させればいい。
-[NSDocument windowControllerDidLoadNib:]とか-[NSWindowController windowDidLoad]とか- awakeFromNibとかで。
上記の2つのコードは、それぞれ別の場所に書かれていてもいいし、呼び出しの順番もどうでもいい。
ただし、nibファイルのNSWindowの設定で、「Visible At Launch」のチェックは外しておくこと。

(関連)
- [NSWindow setInitialFirstResponder:]
207名称未設定:2011/07/30(土) 23:08:02.01 ID:IK7PROgdO
NSTextViewから入力中の文字列の長さを取得ってできないの?
208名称未設定:2011/07/30(土) 23:40:36.65 ID:cU9ofk830
エディットされた時に呼ばれるメソッドでtextStorageからNSStringにしlengthとか。
209名称未設定:2011/07/31(日) 01:07:25.58 ID:CbPSx7JC0
>>207
入力中って、かな漢字変換中のこと?
210名称未設定:2011/07/31(日) 01:32:54.17 ID:PX0owKPjO
>>209
いや、表示されている文字の数を動的に取得したいなと思って
かな漢字変換は確定後でいい

しかしNSTextStorageか……
初めて手を伸ばすクラスだ
211名称未設定:2011/07/31(日) 02:11:01.13 ID:CbPSx7JC0
>>210
なんだ、それなら単純に「NSTextViewの文字列の長さ」ということか。
[[textView textStorage] length];
212名称未設定:2011/08/04(木) 01:27:41.24 ID:iLq9ghGiO
ドラッグして選択される範囲の選択色って変えられないの?
213名称未設定:2011/08/04(木) 12:09:40.56 ID:/E/SsFIG0
>>207といい >>212といい(文面が同じだぞ)、
ちったあ努力してから来いや。
214名称未設定:2011/08/04(木) 14:15:56.48 ID:CJSsQ4Bu0
>>212
ぼくちゃんには変えられないの
215名称未設定:2011/08/16(火) 10:40:01.51 ID:NM8aM4gVi
NSTimerが動作中のオブジェクトをreleaseするとtimerは強制終了されるのでしょうか?
それともrelease前にタイマーが動作中ならストップさせる処理を行ったほうが良いのでしょうか?
216名称未設定:2011/08/16(火) 11:34:30.76 ID:1G4kxBgLP
>>215
run loop が timer を retain し、timer が target を retain してるから、timer や target は release しても問題ないよ。
逆に、timer を止めたいなら、ちゃんと timer を止める必要がある。
217名称未設定:2011/08/16(火) 21:45:22.68 ID:RyorI1WXi
ありがとうございます。
ストップ処理を入れようとすると、クラス変数としてNSTimerを持たないと、
invalidateできないですよね?
記述するのが面倒ですが、そうします。
218名称未設定:2011/08/16(火) 22:46:07.48 ID:1Gz57qVC0
面倒なら中に止める機構を作っておくしかないと思うけど
ソッチの方が面倒だよね
219名称未設定:2011/08/16(火) 23:31:48.13 ID:dqMDr+SA0
タイマーによって呼び出されたとき
- (void)timerFireMethod:(NSTimer*)theTimer
メソッドのパラメータでNSTimerオブジェクトが取得できるのだけど、このタイミングじゃ停止できないの?
220名称未設定:2011/08/17(水) 00:27:59.24 ID:pAlVxxHG0
出来ないわけ無いじゃん。
221名称未設定:2011/08/21(日) 10:53:37.85 ID:ohZFkf2m0
Obj-C スレが落ちてたから立てた

Objective-C [ObjC part:6];
http://hibari.2ch.net/test/read.cgi/tech/1313891268/
222名称未設定:2011/08/21(日) 10:55:15.81 ID:wvPX8SO20
他板のことなんかほっとけばいいでしょ
223名称未設定:2011/08/21(日) 17:24:51.79 ID:4yZupvIB0
>>222
なんか嫌なことでもあったの?美味しいものでも食べて回復してね
224名称未設定:2011/08/21(日) 17:36:22.11 ID:jE450FVK0
Quicktime -> AVFoundationでいいんすね?
後者はまだいじったことないけど。
225名称未設定:2011/08/23(火) 14:36:02.43 ID:XIDM00P2i
iOSによるオートマティズムを読んでいるのですが、意味の分からない点があります。
56pの3.1.2 Core Dataを使うか否かにおいて、
1. CoreDataのメリットとして大規模データの取り扱い易さがある
2. Core Dataではファイル保存形式にはxml、バイナリ、SQLを選択できる
3. SQLを利用すると、メモリ領域を活用することができる

4. 現実的に数MBのデータを扱う際はCore Data一択である

何回読んでも、4の結論が導かれません。
Core Dataが大規模データに向いていると言いたいように思えますが、
比較対象となる「Core Dataではない場合」の話がなく、根拠なくCore Data一択と言っているように読めます。
すみませんが、この箇所の意図するところを教えて頂けないでしょうか。
226名称未設定:2011/08/23(火) 19:54:34.46 ID:CAUoamUf0
>>225
著者本人に聞けば?

ちなみに、俺は、CoreDataのメリットは、リレーショナルDBと同様に、
データベースの中から条件に合うレコードを抽出することだと思っているけど。
SQLならSELECT文とか、CoreDataならNSPredicateを使うあたり。
たぶん、データ量は関係ないだろう。
227名称未設定:2011/08/23(火) 20:01:07.55 ID:hharqV2Q0
CoreData以外でDBを扱うならSQLiteとか?
なんにしろCoreDataだとレコードの取り出し、更新、削除などの扱いが楽だよ。
ただ、XMLファイル全てをメモリに読み込むから、大規模DBには向いていないと思ったけど。
228名称未設定:2011/08/23(火) 20:52:03.62 ID:CAUoamUf0
>>227
CoreDataって、ようするにSQLiteなんじゃ?
229”復帰”屋:2011/08/26(金) 11:02:58.47 ID:eq0Rw2st0
sage
230名称未設定:2011/08/29(月) 07:57:20.78 ID:rIDThZHC0
質問です。
自作ラッパークラスをKVO対応にする場合、
タイマーで例えば0.1秒間隔でチェックさせて
willChangeValueForKey
didChangeValueForKey
を投げるのがいいのか、
それとも違うやり方がいいのか、アドバイスを下さい。
231名称未設定:2011/08/29(月) 12:09:05.61 ID:46rk9WBx0
NSNotification じゃないのかな。
232名称未設定:2011/08/29(月) 14:00:01.77 ID:FxB/hShc0
イマイチ質問の意味をつかみきれないんだけど、
値を変更する時に、プロパティ使うか、セッター使えばいいんでないの?
233名称未設定:2011/08/29(月) 14:42:58.51 ID:/MTUm1NS0
タイマーで監視ってKVOが根本的に分かってないんじゃないの?

かなり古いけど、これ読んどけ
http://developer.apple.com/jp/documentation/cocoa/Conceptual/KeyValueObserving/index.html

こっちでもいいけど
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html
234名称未設定:2011/08/29(月) 14:43:46.18 ID:LyPlnOrD0
>>230
KVOというのはセッター呼べば通知行くの
セッターを使わない変更の場合は、その変更処理をwillChangeValueForKey, didChangeValueForKeyで囲めばいい
235名称未設定:2011/08/29(月) 18:58:38.55 ID:q0k8GEU70
>>230
とりあえず、その「自作ラッパークラス」って何?
236名称未設定:2011/08/29(月) 19:39:04.37 ID:rIDThZHC0
Non-cocoa ライブラリのサービスを
扱う為にラッパクラスを書いてます。

こういうケースでサービスのプロパティ
をBindingでモニタ出来るようにしたい
ので、ポーリングするタイマーを動かして
変更時に通知させたいのです。
237名称未設定:2011/08/29(月) 20:07:38.74 ID:LyPlnOrD0
>>236
そのライブラリにはコールバックもないわけ?
238名称未設定:2011/08/29(月) 20:26:22.96 ID:rIDThZHC0
はい。linux環境からの移植です。

239名称未設定:2011/08/29(月) 20:34:59.24 ID:LyPlnOrD0
>>238
具体的にどういうライブラリの何をラップするのか書いてくれた方がいいな。
俺はKVO使う必要がそもそもない方に賭けるけど
240230, 236:2011/08/29(月) 20:54:48.67 ID:MYhTnIYa0
これです。

https://github.com/MyCometG3/libavPlayer/blob/master/libavPlayer/LAVPStream.h

libavformatで読み込んだ映像ファイルを、如何にKVOサポートさせるかで
悩んでいます。
画像更新ごと、毎秒60回もKVO通知させるわけにも行かないし・・・

タイマーによるポーリング以外でうまく出来る手法はあるのでしょうか。
241名称未設定:2011/08/29(月) 21:11:15.82 ID:q0k8GEU70
>>240
えーと、ようするに、動画ファイルを再生するフレームワークを作っていて、
再生中を表す「isRunning」みたいなプロパティを実装するにはどうしたらよいか?
という話?
242230, 236, 240:2011/08/29(月) 21:20:24.77 ID:MYhTnIYa0
>> 241
はい。
double_tとか、BOOLとか、構造体とかをKVOサポートさせる話です。

現状画像はDisplayLinkで更新されるように作っているので、
GPUのリフレッシュレートより高速にはなりませんが・・・

タイマーで間引くのがいいのかな、というのが最初に質問の趣旨です。
243名称未設定:2011/08/29(月) 21:38:18.74 ID:q0k8GEU70
>>242
その再生中プロパティに限った話なら、
とりあえず、-playとか-stopメソッドが呼ばれたときは、普通に処理できると思うけど、
問題は再生中に、再生が終了したときに、どうやってプロパティを「停止」にするか?ですよね?
再生終了の条件は、再生位置がファイルの末尾に達した時でいいでしょうか?

で、このlibavformatで動画を再生するときって、1フレームごとにリアルタイムに画像処理とかしませんか?
そのときに、現在処理中のフレームが最終フレームがどうか判定できませんか?

または、再生終了時刻を計算して、-[NSObject performSelector:withObject:afterDelay:]で、
終了時刻にアクションを起こせるようにRunLoopにスケジュールできませんか?
244230, 236, 240, 242:2011/08/29(月) 21:47:43.24 ID:MYhTnIYa0
>>243

確かに、ON/OFFといった情報は実装も容易なのですが、
時間と共に連続して変わって行く可能性のあるプロパティ
例えば、再生位置、といった情報のKVO通知を想定しています。

このような連続して変わるものをKVOでどう扱うのが望ましい
のでしょうか。
245名称未設定:2011/08/29(月) 21:53:50.34 ID:q0k8GEU70
>>244
それはKVOする必要ありません。

再生位置なら、NSTimerで60Hzぐらいの速度で、setNeedsDisplay:して、
drawRect:の中で、再生位置をその都度参照して描画する。でOKです。
246230, 236, 240, 242, 244:2011/08/29(月) 22:14:47.94 ID:MYhTnIYa0
>>245
・・・どうにもうまく理解出来ていません。
もう少し調べてみます。ありがとうございました。
247名称未設定:2011/08/29(月) 22:18:03.72 ID:q0k8GEU70
>>246
えーと、つまり、NSAnimationクラスのcurrentValueと同じ扱いでいいという話です。
NSAnimationのcurrentValueはKVOをサポートしてませんよね?
そもそもKVOを必要とするような使い方しませんよね?
248名称未設定:2011/08/31(水) 23:50:53.35 ID:sQLFOZGGP
249名称未設定:2011/09/28(水) 08:08:38.30 ID:2fTI86O+0
プログラミングを初めて勉強しようと、古いCocoa本を買ったらTiger時代のものでLionの俺のXcodeと全然違います。助けてください!!!
250名称未設定:2011/09/28(水) 09:19:47.82 ID:i8RQVwwp0
ええっと、Tigerはもう手に入らないんだっけ?
251名称未設定:2011/09/28(水) 09:21:15.48 ID:2fTI86O+0
なんでやねーん!!!!
252名称未設定:2011/09/28(水) 10:02:19.54 ID:i8RQVwwp0
Lion時代に最新の解説本買わずにわざわざTiger本買って始めようというのだから、
Tigerでなにかやろうとしていると思われても当然ですしおすし。
253名称未設定:2011/09/28(水) 10:05:00.94 ID:2fTI86O+0
古本で100円だったんです(´・ω・`)
最新版買うしかないですねスマソ
254名称未設定:2011/09/28(水) 14:07:14.65 ID:VGXSdsVc0
安心しろ、今のところ日本語の良書は無いから
255名称未設定:2011/09/29(木) 23:46:58.10 ID:BtOf7NBQP
Macについては本を書く人がいないからな。まあ、AppKit以外はiPhoneの本をそのまま
流用できるけど。

256名称未設定:2011/09/30(金) 00:42:05.47 ID:DclzSMMP0
AppKit以外が流用できるレベルになってる人はXcodeのバージョンで泣いたりはしないだろ。
本家のXcode4のガイドと併読するだけで解決する。

「これからプログラミング入門」だと本に書いてある通り動かないときついだろ。
257名称未設定:2011/09/30(金) 07:16:30.06 ID:h/kDaL060
JavaScriptでwindow.open()を実行した時

-(WebView *) webView:(WebView *)sender
   createWebViewWithRequest:(NSURLRequest *)request

requestが0x0でとれません。

URLを知るにはどのようにしたらよいのでしょうか?
258名称未設定:2011/09/30(金) 09:47:56.88 ID:Fo+YK1fe0
えーと、もう一つなんかあったはず。
259名称未設定:2011/09/30(金) 11:29:09.25 ID:Q4MgJtMx0
もう一つはMacプログラマのスレかな
260名称未設定:2011/09/30(金) 12:12:56.19 ID:6P/HIq3J0
リクエスト取るだけなら
decidePolicyForNewWindowActionとかでもいけるんじゃ無いかな。
ナビゲーションのデリゲートメソッドを漁ってみる。
261名称未設定:2011/09/30(金) 13:25:47.23 ID:h/kDaL060
>>260
NSDocumentで実際にwindowをひらいた後なら
decidePolicyForNewWindowActionでとれました。

しかし、winodowを開かないで、さらにできればNSDocumentを使わない
方法はないのでしょうか?
262名称未設定:2011/09/30(金) 14:51:57.79 ID:0kdQR4/I0
NSDocumentじゃなくてWebViewじゃないの?
開く前に取得出来るメソッドもあるかと。
じゃないとポップアップブロックとかで来ないし。
263名称未設定:2011/09/30(金) 20:41:03.53 ID:h/kDaL060
>>262
本来
WebUIDelegateの
>>257
で受けとれるはずなのですが受け取れません

なので、どなたかご存知ありませんでしょうか?

264名称未設定:2011/09/30(金) 21:06:16.08 ID:XxYL/Gh/0
デリゲートの宣言をしていないとか。
簡単なwebviewのサンプル作って再確認かな。
265名称未設定:2011/09/30(金) 21:48:28.68 ID:h/kDaL060
ちなみにjavascript以外の
<a href="http://???.jp/" target="_blank">test</a>
はcreateWebViewWithRequestで取得出来ます。

266名称未設定:2011/09/30(金) 22:28:03.88 ID:G8VZzyIMi
そうそう。で、window.openの時は違うメソッドで処理したような気がする。
ココアはやっぱりのページに書いてあったかな?
267名称未設定:2011/10/01(土) 23:15:39.74 ID:GUHgc7xH0
Appleのサンプルコードで
[savePanel beginSheetModalForWindow:[self windowForSheet] completionHandler:^(NSInteger result) {
if (result == NSFileHandlingPanelOKButton)
[self performSelector:@selector(startProgressSheetWithURL:) withObject:[savePanel URL] afterDelay:0.0];
}];
と言うのがあったんだけど、afterDelay:0.0なんだから
[self startProgressSheetWithURL:[savePanel URL]];
と等価にみえるんだけどなんであえてこういう書き方なんだろう?
268名称未設定:2011/10/02(日) 00:54:18.34 ID:Ob+Vpt6R0
そのメソッドの処理が重い場合、直接呼び出すとそのまま固まる。
afterdelayで呼び出すと、完了を待たずに先へ進めるので固まらない。
waituntiledoneでNO指定するのと一緒。

ただ、画面表示周りはafterdelay:0.0だとうまく描画が更新されるのに
直接呼び出すとダメなことがあった。
このため、単なる回避策の可能性もある。

269名称未設定:2011/10/02(日) 01:01:25.46 ID:5o1PncQL0
>>267
Specifying a delay of 0 does not necessarily cause the selector to be
performed immediately. The selector is still queued on the thread's
run loop and performed as soon as possible.
270名称未設定:2011/10/03(月) 23:58:10.20 ID:DcMd2jTR0
ありがとうございました。
>>268
メソッド名のstartProgressSheetWithURLを見ていただくと解る通りプログレスの表示なんです。
なので、重いというよりはそっちの方がむしろ処理をブロックする側になります。
キャンセルボタンだしてProgressの表示を行っています。
画面表示周りがうまく行かない件、調べてみようと思います。

>>269
はい。その記述は読みました。0を指定するのは即座に実行される必要がない時に指定するもので
スレッドのrun loopのキューに積まれてできるだけ早く実行されるという意味だと理解しました。
逆に、今回は別に即座に実行されてしまっても構わないケースだと思ったのにこういうコーディングに
なっていたので、もしかすると何か即座に実行されてしまうと困る事があるのかもしれませんね。
そういう観点でstartProgressSheetWithURLを良く読んでみます。

271名称未設定:2011/10/04(火) 01:56:31.88 ID:Gq0ru3hd0
スレッドの使い方の分かりやすいサンプルとか、サイトあったら教えてください。
テーブルと加速度センサーの処理をスレッドで分けたいのですが出来ますか?
272名称未設定:2011/10/04(火) 03:24:31.92 ID:xUE41hH10
NSThread
273名称未設定:2011/10/04(火) 11:39:41.63 ID:Z7ou6+qU0
NSOperation
274名称未設定:2011/10/04(火) 12:17:40.18 ID:/kqKR+sA0
GCD
275名称未設定:2011/10/04(火) 12:35:56.88 ID:tXM8qbsV0
pthread
276名称未設定:2011/10/04(火) 16:20:58.09 ID:Gq0ru3hd0
APIデスね。ありがとうございます。
>>271後半は可能ですか?
277名称未設定:2011/10/04(火) 20:27:55.00 ID:HNVfwMbD0
可能。UIはメインスレッドで。
278名称未設定:2011/10/05(水) 00:30:06.81 ID:aBj19bDjP
>>270
runloopが回ることに意味がある。
279名称未設定:2011/10/07(金) 04:15:21.17 ID:izCOuuWV0
練習用にテキストエディタを作っているのですが、仕上げの入出力で手間取っています
ヒレガス本は一応通読したのですが、データ形式しかのっていないためネットの記事を参考にしようと思うのですが、おすすめのサイトはありますか?

280名称未設定:2011/10/07(金) 10:08:41.07 ID:p5LRIObJi
仕上げの入出力って何?
音声入出力に対応させるってこと?
それともジェスチャーでってこと?
281名称未設定:2011/10/07(金) 16:19:40.46 ID:jh9W/EWu0
>>279
ファイルの入出力かな?
documentベースで作っていればテンプレにちょっと付け足すだけでできるけど。
ttp://www.mosa.gr.jp/?p=446
282名称未設定:2011/10/07(金) 22:18:31.05 ID:xBAszGYr0
っていうか、ここへ来て、知りたい情報は「おすすめのサイト」なのか。
自分でググッた方が早いんじゃないのか?
283名称未設定:2011/10/08(土) 03:18:43.57 ID:XYB0Op4x0
日本語でcocoaを解説しているサイトなんて数える程だな。
最近は、iOS関連で増えてはいるが。
284名称未設定:2011/10/09(日) 10:35:00.87 ID:eDXKOh5aP
>>279

Cocoaの日々

http://cocoadays.blogspot.com/
http://xcatsan.blogspot.com/

Googleと有益な情報はここに行き着く。
285名称未設定:2011/10/09(日) 12:11:30.23 ID:35yXOP6U0
Cocoaの日々の人はよくやってるよ
いつもいい情報提供してくれる。

iOSでも似たようなところがあるけど、情報としてはすごくピンポイントだったりしていいんだけど
いろいろキモいので困る。
286名称未設定:2011/10/10(月) 12:21:40.84 ID:nbWREi+c0
10.7から使えるようになったview-basedなNSOutlineViewについてです。
ビューのリサイズを検知したら、各行の高さを内容に合わせて調整するようにしています。

[outlineView noteHeightOfRowsWithIndexesChanged:rowIndexes];
(rowIndexesは表示中の行を表すNSIndexSetインスタンス)

このとき、行の高さは正しく調整されるのですが左側の三角(開閉の時にクリックするやつ)が期待する位置に描画されません。
具体的には、最初に描画された位置から変更されません。つまり、最初に描画する際に行の高さを20とした場合、三角の中心が左上から10の位置にあるということになりますが、その後、行の高さを70.0としても10の位置のままとなっています。

これをリサイズ後も上下中央(高さを70に変更した場合は35の位置)に描画するようにしたいと考えています。
解決方法をご存知の方がいらっしゃいましたらご教示ください。
287名称未設定:2011/10/10(月) 18:46:11.75 ID:g1sqgWM40
>>286

- (void)windowDidResizeNotification:(NSNotification*)notify
{
[outlineView reloadData];
}


- (CGFloat)outlineView:(NSOutlineView *)anOutlineView heightOfRowByItem:(id)item
{
return [[anOutlineView window] frame].size.height / 5.0;
}

試して見たけど、とりあえず上記のコードで、ウインドウのリサイズに追従して三角の位置も変化したよ。
288名称未設定:2011/10/11(火) 01:05:45.10 ID:oaPEnsOf0
>>287
ありがとうございます。
>>286 です。確かにそれでも可能のようです。

しかしその後の調べた結果、簡潔な方法が判明したので記載しておきます。
まず、原因です。
Appleが提供しているTable View Programming Guideにも記載がありましたが、view-basedなNSOutlineViewでは各行にNSTableRowViewがあり、そのサブビューとして左側の三角や各カラムに対応するNSTableViewCellが配置されているようです。
左側の三角はNSButtonクラスのインスタンスで、NSTableRowViewのサブビューのひとつとなっています。
今回の場合、NSButtonのautoresizingMaskがNSViewNotResizableとなっていることが原因でした。
(解決方法は次へ)
289名称未設定:2011/10/11(火) 01:07:13.84 ID:oaPEnsOf0
つぎに解決方法ですが、NSTableRowViewのサブクラスを用意し、xibファイルに追加します。
User Interface Item IdentifierをNSTableViewRowViewKeyとすることでカスタムクラスを使用することができるようです。
addSubview: をオーバーライドします。

- (void)addSubview:(NSView *)subview
{
[super addSubview:subview];

if ([subview isKindOfClass:[NSButton class]]) {
[subview setAutoresizingMask:NSViewHeightSizable];
}
}

これで三角のボタンをリサイズに合わせて中央に表示することができました。
簡潔というより、コストが低い、ですね。。
290名称未設定:2011/10/11(火) 17:42:00.24 ID:1cnXthM+0
Xcode4でNSStepperおかしくありません?

incrementはdoubleのはずなのに整数しか入らん…
291名称未設定:2011/10/11(火) 20:04:43.13 ID:u73Nz2AQ0
Xcode3でビルドするとdoubleが入るってこと???
292名称未設定:2011/10/12(水) 00:00:12.13 ID:30ahlhQG0
IBでやると無理、コードで指定なら可能って感じじゃないかな。
他にもNSNumberFormatterとかNSTextField+NSStepperで値指定するものは少数を入力できなくなってる。
293名称未設定:2011/10/12(水) 00:42:33.21 ID:oplUNsZh0
>>286
ふと思ったのだが、
普通にNSOutlineViewをNSWindow上に配置すると、
NSOutlineView本体はNSScrollViewの中に入ってるはずなので、
NSOutlineViewのリサイズが発生するのは、行が増えたり減ったりするときだけのような気がする。
今回の話って、いったいどういった状況下でNSOutlineViewを使ってるの?
294名称未設定:2011/10/12(水) 10:13:02.52 ID:HvYqICf+i
行の高さが変わるんじゃない。
リサイズしても常に10行表示させたいとか。
295名称未設定:2011/10/12(水) 15:37:50.35 ID:d2vNikS90
>>293
>286です。
スクロールビューに入った状態で使用していますが、横スクロールをさせたくないのでスクロールビューのリサイズに追従してアウトラインビューの幅も調整しています。
また、各行には複数行のテキストを省略なく表示したいのでスクロールビューのリサイズで行の高さを変更する必要がありました。

今>286を読み返して気づきましたが、冒頭のビューのリサイズを〜というのはアウトラインビューの、ではなくスクロールビューの、ということです。
296名称未設定:2011/10/12(水) 19:04:54.69 ID:oplUNsZh0
ようするに、スクロールビューを無効化している訳か。
297名称未設定:2011/10/14(金) 23:59:15.55 ID:dZVyoKzc0
Xcode4.2にアップグレードしたら、svnリポジトリのリモート接続がトラブった。
復旧させるのに、ちょっと苦労した。
298名称未設定:2011/10/15(土) 11:53:31.25 ID:EkqMbeTP0
>>297
せっかくだから、どうトラブってどう復旧したか書いてみませんか?
299297:2011/10/15(土) 18:45:54.95 ID:b6Rk24M40
オーガナイザーで、ステータスが「赤」になって、svnのリモートリポジトリが参照不能になった。
コマンドラインの、svnコマンドの方は問題なし。
add Repository...で作り直しても、ステータスは赤(Host is unreachable)のまま。

復旧方法はちょっと変。
add Repository...のLocation欄に、
svn://remote.local/project
と書くと、ステータス赤になるが、ここで最初の「/」を削除して
svn:/remote.local/project
にすると、ステータスが消えて、再度「/」を挿入すると
svn://remote.local/project
元の内容に戻ったうえに、ステータスが消えたままになる。
このまま、「Next」→「Add」と進めると、リポジトリが出来上がり、
checkoutやcommitが正常に動作するのを確認した。

が、、、
OSをシャットダウンして、一晩だってから再起動したら、またステータス赤で参照できなくなってた。
というわけで、全然復旧してませんでしたorz
300名称未設定:2011/10/15(土) 19:18:50.86 ID:jLOdO0jP0
xcodeとsvnの連携って便利?
設定が面倒で、結局ターミナルでチェックインしてる。
まあ、それで不満がないから設定してないってのもあるけど。
301名称未設定:2011/10/15(土) 19:25:20.07 ID:b6Rk24M40
>>300
それは、svnの使うのにGUIを使うかCLIを使うか、という話だと思う。
でも普通に考えたら、マウス1クリックでcommit出来る方が楽じゃないか?
302名称未設定:2011/10/16(日) 01:01:34.97 ID:8pX80Ytj0
>>299
そんなあなたのために…
svnX
Versions
Cornerstone
SmartSVN
URLはMacUpdateで検索してね!
303名称未設定:2011/10/16(日) 09:46:20.76 ID:NqzMnyj50
Thanks.
でもXCodeと一体化してくれるといいんだけどねー
304名称未設定:2011/10/16(日) 10:13:18.78 ID:6CkWM7r+0
SCMとかあるじゃん
305名称未設定:2011/10/16(日) 11:29:04.53 ID:vYckS3Ys0
OS X 10.6.8 + Safari 5.1.1のWebKitで
グラフィクをロードしない
[[ webView preferences] setLoadsImagesAutomatically: NO ]
を行うとメモリ消費が増えます

これは、以前のバージョンでもおきるのでしょうか?
306名称未設定:2011/10/16(日) 11:55:10.55 ID:4OrQaaalP
TortoiseSVNになれると他のは使えない。Mac版は開発中断しのがなあ。
307名称未設定:2011/10/16(日) 18:06:23.23 ID:RvhDIq9c0
SourceTreeが無料のうちに落としとくのがいいよ。これ使いやすい。SVN鯖にも繋げるし。
308名称未設定:2011/10/16(日) 23:59:11.75 ID:pSRsfJYw0
>>299
それがXcodeのバグなら、とりあえずバグが修復されるのを待つしかないだろう。
それまでの間は、適当なツールでしのぐ。
commitとかのバージョン管理だけじゃなく、diffとかもあるからね、
やっぱりXcodeに統合されていた方が便利だよね。
309名称未設定:2011/10/17(月) 22:22:47.46 ID:Le9dfM/+0
interface builderの不具合なんですが、xcodeでアウトレットを追加すると今まではIBにも追加が通知されていました
それが突然されなくなって、全部消えてしまうようになりました

同じ現象がおきた方いますか?
直前にハードディスクのアクセス権修復したのが原因かと考えているんですが・・・・・・
310名称未設定:2011/10/17(月) 22:27:17.16 ID:OhkTdOgn0
再インストール
311名称未設定:2011/10/17(月) 22:37:42.16 ID:mnIKLV2h0
>>309
コンソール.appを見てみて。
本当にファイルアクセス権限関係の障害なら、XcodeかInterfaceBuilderが何かログを吐いているかもしれない。
312名称未設定:2011/10/19(水) 00:04:24.82 ID:IZCtpUed0
Document-Basedアプリケーションでファイルを開くとき
FinderからDockアイコンにドロップしたり「ファイルを開く」から開くようなことを
コードから実行するとすると、どうしたらいいでしょうか。
NSDocumentControllerのopenDocumentWithContentsOfFileでしょうか?
313名称未設定:2011/10/19(水) 00:57:49.18 ID:R0pzufWd0
>>312
全部、フレームワークがやってくれます。
ドロップするファイルの定義はinfo.plistの編集が必要。
この辺参考にどうぞ。
http://homepage.mac.com/mkino2/cocoaProg/AppKit/NSDocument/NSDocument.html
314名称未設定:2011/10/19(水) 07:40:32.34 ID:IZCtpUed0
ありがとうございます。これは、ユーザーが何かした後の対応ですよね?ちょっと誤解がある表現だったようですみません。
要はユーザーが行った操作をトリガとしてではなくて、アプリケーションが自分で開きたいということなのです。
315名称未設定:2011/10/19(水) 10:11:20.36 ID:pbUhLNjn0
>>312
openDocumentWithContentsOf〜系のメソッドでいいと思うけど。聞く前に自分で試せばいいのでは?

でも、最新のドキュメントを見ると、
〜OfFile:display: available in 10.0 and later, deprecated in 10.4
〜OfURL:display: available in 10.0 and later, deprecated in 10.4
〜OfURL:display:error: available in 10.4 and later, deprecated in 10.7
〜OfURL:display:completionHandler: available in 10.7
となってて、さらにreopen〜なんてのもあるから、どれ使えばいいか迷うね。
316名称未設定:2011/10/19(水) 10:22:04.70 ID:fZf0vIus0
-[NSWorkspace openFile:withApplication:]
317名称未設定:2011/10/19(水) 11:34:30.66 ID:pbUhLNjn0
>>316
それは他のアプリで開く場合では? アプリ名に自分を指定すればいいのかもだけど、同じ名前のアプリがあったりしたら、確実に指定できるのかな?

ドキュメントを読んでて気になったこと。
•file coordination mechanism って何? iCloud 関係? そもそも日本語では何と訳せばいい?
•Lion の App Sandbox では open ダイアログで指定したファイル以外は開けないようだけど、履歴から開くような場合はどうするんだろ?
318名称未設定:2011/10/19(水) 21:05:46.80 ID:IZCtpUed0
ありがとうございます。確かにopenDocumentWithContentsOfURLを試したのですが、
*** Canceling drag because exception 'NSInternalInconsistencyException' (reason 'typeForContentsOfURL:error:
must be overridden for your application to support non-'file:' URLs.') was raised during a dragging session
といわれマス。
なので、DocumentControllerのサブクラスをMainMenu.xibに置いて、中身の
(NSString *)typeForContentsOfURL:(NSURL *)inAbsoluteURL error:(NSError **)outError
を実装しようかと思ったのですが、中身に困っています。
単にタイプを返すだけだと何も起こらないようで…
319名称未設定:2011/10/19(水) 21:26:09.05 ID:o2D3PO/g0
>>318
openDocumentWithContentsOfURLのパラメーターとして、どんな内容のNSURLを渡したの?
なんか、file:じゃないURLだったので処理に困っている。というふうに読めるけど?
320名称未設定:2011/10/19(水) 21:39:01.23 ID:pbUhLNjn0
>>318
NSURL *url = [NSURL URLWithString:str];
としてない? これは str が "file:///Users/xxx/file.txt" とか "http://www.apple.com/index.html" とかの場合だよ。

NSURL *url = [NSURL fileURLWithPath:path];
が正解の筈。あと、path はフルパス ("file.txt" じゃなくて "/Users/xxx/file.txt") じゃないと駄目だと思う。
321名称未設定:2011/10/19(水) 21:39:52.29 ID:o2D3PO/g0
>>317
> •file coordination mechanism って何? iCloud 関係? そもそも日本語では何と訳せばいい?

それは、ファイルの「バージョン管理」関連らしいぞ。
そして、iCloudストレージでもバージョン管理を使うようなので、いちおうiCloud関係でもあるようだ。
あえて日本語に訳すなら、「ファイル調整機関」かな?
322名称未設定:2011/10/19(水) 21:48:19.96 ID:IZCtpUed0
>>319,320
わーお、まさにズバリその通りでした!
お騒がせしてすみません。。。
丁寧な回答大変ありがとうございます。
323名称未設定:2011/10/19(水) 21:55:35.58 ID:pbUhLNjn0
>>321
>それは、ファイルの「バージョン管理」関連らしいぞ。
ありがとう。バージョン管理関連かぁ。
自動保存とかバージョンとか iCloud の衝突とか、何がどうなるのか謎すぎる。ちゃんと試してみなきゃ。

>あえて日本語に訳すなら、「ファイル調整機関」かな?
うーん…、英語でいいや。笑
324名称未設定:2011/10/19(水) 22:11:01.00 ID:o2D3PO/g0
>>323
実はちょうど今、iCloud Storageをいじってるところ。
若干ハマッている。。。
ストレージのファイルの読み書きは問題なく出来るようになった。
でも、なぜかファイルの競合が発生しない。もしくは、競合を検出できない。
どうやら、しっかりとバージョン管理付きでファイルを書き込みしないと、ダメっぽい。

ちなみに、自動保存と非同期保存は制圧済み^^
325名称未設定:2011/10/21(金) 00:35:30.27 ID:O5ciRt+Y0
iCloud Storageで、いろいろと通知を受け取れるようになった。
結果、別の意味でファイルの競合が発生しないらしいことが分かった。
NSDocumentのデフォルトの実装によれば、iCloud Storageにある1つのファイルを2つのデバイスで同時に開いた状態で、
片方のデバイスでファイルを編集して保存(新バージョン作成)すると、リアルタイムにもう片方のデバイスに
変更が反映される。(ファイルの自動再読み込み)
ファイルのバージョン競合なんてものは、そもそも起こらないのかもしれない。
326名称未設定:2011/10/21(金) 00:41:18.76 ID:CygQYWXM0
>>325
オフラインで編集すれば競合するのでは?
(まさかオフラインでは保存できないってことはないよね…)
327名称未設定:2011/10/21(金) 00:45:28.11 ID:CygQYWXM0
ってか、リアルタイムに反映されるのはどうなんだろ。
古いドキュメントをじっくり読んでたらいつのまにか新しくなってるってことだよね。
undo/redo 情報とかもどうなるのやら。
328名称未設定:2011/10/21(金) 20:44:55.12 ID:O5ciRt+Y0
>>326
> オフラインで編集すれば競合するのでは?

そのとおりでした。

1度開いたことのあるファイルは、ローカルにキャッシュされていて、オフラインでも開くことができる。
オフラインのまま編集して保存(新バージョン作成)も可能。
そして、オンラインにしたとたんに、双方のデバイスでバージョンの競合が発生します。
NSDocumentのデフォルトの実装では、「破棄」と「解決...」の選択を迫られて、「解決...」を選ぶと、
どのバージョンの書類を有効にするか選ぶ画面(通常のバージョン選択画面)が出てきます。
片方のデバイスでバージョンを選択・決定すると、もう片方のデバイスにもそれがリアルタイムに反映されます。
(もう片方のデバイスでバージョン選択画面に入っていても、強制的にキャンセルされます。早いもの勝ち)


>>327
> 古いドキュメントをじっくり読んでたらいつのまにか新しくなってるってことだよね。

そのとおりです。デフォルトでは、「更新しました」表示も出ません。

> undo/redo 情報とかもどうなるのやら。

まだ試してませんが、おそらくクリアされると思われます。ファイルを開き直しているっぽいので。

でも、そのへんの動きは、NSDocumentに実装されているNSFilePresenterのメソッドをオーバーライドすれば、
動作のカスタマイズは可能だと思うので、なんとかなるんじゃないかな?
329名称未設定:2011/10/29(土) 11:49:04.81 ID:hhi+qPyN0
Property redeclaration について相談です。
ヘッダはreadonly、カテゴリでreadwriteと再定義するやり方について正しい書き方を教えてください。

test[10383:707] -[AppDelegate setHoge:]: unrecognized selector sent to instance 0x101e0e1f0

// AppDelegate.h
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate> {
NSNumber* hoge;
}
@property (assign) IBOutlet NSWindow *window;
@property (readonly, retain) NSNumber* hoge;
@end

// AppDelegate.m
#import "AppDelegate.h"
@interface AppDelegate (private)
@property (readwrite, retain) NSNumber* hoge;
@end

@implementation AppDelegate
@synthesize window = _window;
@synthesize hoge;
- (void)dealloc { [super dealloc]; }
@end

@implementation AppDelegate (private)
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
self.hoge = [NSNumber numberWithBool:YES];
}
@end
330名称未設定:2011/10/29(土) 13:16:23.46 ID:2leW4l8p0
@interface AppDelegate ()
331329:2011/10/29(土) 13:41:52.43 ID:hhi+qPyN0
>>330

ありがとうございました。
Categoryではなく、Class Extensionという機能を使うのですね。すっかりCategoryだと
思い込んでいました。

なお、Documentにあるpropertyやinstance variableの追加は、Clang/LLVM 2.0 compiler
が必須とあったので、llvm-gcc非互換になってしまうと理解したのですが、試してみたら
clang 3はもちろん、llvm-gcc 4.2でも動きますね・・・
332329:2011/10/29(土) 13:44:41.35 ID:hhi+qPyN0
失礼しました。検証ミスってました・・・
やはりclangでないと、インスタンス変数追加は出来なかったです。
333名称未設定:2011/10/31(月) 20:15:03.02 ID:QNGIST9m0
Document-Basedアプリケーションで作ってても
ある種類のファイルは開くたびに新しいウィンドウを作りたくない、みたいな場合のために
解説していたWebサイトがあったと思うのですが、どうしても見つからない…
誰か御存知ありませんか?
334名称未設定:2011/10/31(月) 20:33:00.04 ID:nhkqzZ9U0
ようわからんが、シングルウインドウだけで済ませるつもりなら
Document-Basedにする必要あるかいな?
335名称未設定:2011/10/31(月) 21:09:37.03 ID:QNGIST9m0
ええと、どちらかというと、ある種類のドキュメントはウィンドウを使いまわしたい
という要求ですね
336名称未設定:2011/10/31(月) 21:27:30.67 ID:c7K55sdP0
>>335
それは、NSDocumentを使わなければ良い。ということかと。
337名称未設定:2011/10/31(月) 21:45:19.43 ID:c7K55sdP0
>>335
ところで、それって、2つの書類を開いたらどうなるんだ?
古い方の書類は、自動的に閉じたことにするの?
338名称未設定:2011/10/31(月) 22:13:18.07 ID:QNGIST9m0
>>335
既存のウィンドウを使い回して古い方は閉じるか、既存のウィンドウのプレイリストに追加されるか、新しくウィンドウを開くか、条件によって変えられるといいのですが。
・.通常は常に新しいウィンドウで開きたい
・基本的に新しいウィンドウを開くが、すでに開いているウィンドウにドロップしたときはそれを使いまわす
というような感じですね
自分で新しくウィンドウを作ってもいいと思うのですが、履歴の対応や複数開いた場合などを考えると
ベースはDocument-Basedの方が何かと便利なもので
ある条件の時だけ新しくウィンドウを開かないで使いまわせないかなぁ、と考えてます
339名称未設定:2011/10/31(月) 22:19:33.49 ID:hG1mk5hC0
>>335
使い回す部分だけDocumentのnibを使ってその他は別のnibに置けばいいんじゃないかな。
>>337
シングルウィンドウのアプリケーションは新しい書類を開く時に古い書類を保存しますか?と聞いてくる。
340名称未設定:2011/10/31(月) 22:25:44.37 ID:IVMORIEA0
>>338
ウインドウを開いて、すぐ閉じて処理を続ける処理をすればいいんじゃない?
341名称未設定:2011/10/31(月) 22:51:54.06 ID:c7K55sdP0
>>338
> ・.通常は常に新しいウィンドウで開きたい
> ・基本的に新しいウィンドウを開くが、すでに開いているウィンドウにドロップしたときはそれを使いまわす

これって、難しい話じゃなくて、普通にDocument-basedでアプリを作って、書類のドロップ処理だけ工夫すればいいのでは?
一つのNSDocumentオブジェクトで、書類を再読み込みするのは、普通にできた気がするけど?
342名称未設定:2011/10/31(月) 22:52:18.63 ID:QNGIST9m0
すみません、ちょっと難しく考えすぎていたように思いますので
普通にNSDocumentControllerのサブクラスを作りますね
よく考えれば、MyDocumentクラスをインスタンス化する前に既存のウィンドウにURL投げてやるように
openDocumentWithContentsOfURLをオーバーライドしてみます。
お騒がせしました
343名称未設定:2011/10/31(月) 22:57:08.46 ID:QNGIST9m0
>>341
それもそうですね。ドキュメントタイプによって必ず新しいウィンドウで開きたい場合もあるのですが(プレイリストファイル自体とか)、それはおいておいて
再読み込み後にどのように自分のURLの変更を通知するのか、ちょっと調べてみます。
344名称未設定:2011/11/12(土) 16:31:45.39 ID:MVURSLck0
NSTextFieldで英小文字入力を大文字に変換して表示する方法をご教示ください。
見た目はキー入力時にcaps lockした時と同じ動きになってる感じです。
NSFormatterでuppercaseStringをしたのですが、
returnキーで確定しないと大文字表示にならず目的とおりにならないです。

@interface OomojiFormatter : NSFormatter {}
@end
@implementation OomojiFormatter
- (NSString *)stringForObjectValue:(id)anObject
{ return (anObject == nil)? nil : [anObject uppercaseString]; }
- (BOOL)getObjectValue:(id *)anObject forString:(NSString *)string
errorDescription:(NSString **)error
{ *anObject = [string uppercaseString]; return YES; }
@end
345名称未設定:2011/11/12(土) 17:47:13.95 ID:Ef8hLwCm0
文字が入力される度に大文字にするなら、NSTextFieldかそれの親クラスのメソッドで
内容が変更されたら呼ばれるメソッドがあったはず。
346名称未設定:2011/11/12(土) 20:44:26.55 ID:YPeO8zib0
NSControl の -controlTextDidBeginEditing: , -controlTextDidChange: の
デリゲートで地道に uppercase に変換していけば、一文字ずついけた気がする。
347名称未設定:2011/11/12(土) 23:19:04.45 ID:B2L6YfD50
>>344
- (BOOL)isPartialStringValid:(NSString *)partialString newEditingString:(NSString **)newString errorDescription:(NSString **)error {
*newString = [partialString uppercaseString];
return NO;
}
を追加する
348名称未設定:2011/11/14(月) 20:26:49.03 ID:AqpJW18s0
>>345>>346
コメントありがとうございます
>>347
追加したら目的どおりの動作になりました、
アドバイスありがとうございました
349299:2011/11/21(月) 21:18:50.19 ID:dJ6YH25G0
Xcodeでsvnのリモートリポジトリが使えない件は、version4.2.1で復旧しました。

めでたし、めでたし。
350名称未設定:2011/12/09(金) 22:55:38.78 ID:WmM3JwUk0
文字列からクラスとそのクラスメソッドを呼ぶ方法はないでしょうか?

Class型はNSClassFromString()で作れ、
SEL型はNSSelectorFromString()で作れますが、
クラスメソッドに対するperformSelector:みたいのが無さげです。
351名称未設定:2011/12/09(金) 23:26:22.12 ID:UAhWlmZA0
自分で書いてるような。
Class cls = NSClassFromString(@"MyClass");
SEL sel = NSSelectorFromString(@"foo");
[cls performSelector:sel];
352名称未設定:2011/12/09(金) 23:26:28.68 ID:XpfsDptq0
performSelector:でいいよ
353名称未設定:2011/12/10(土) 02:57:38.53 ID:oR7s8Ful0
@selector(hoge:fuga:hage:)
354350:2011/12/11(日) 02:06:01.49 ID:Z4GeqjP10
「Objective-Cプログラミング言語」を見直しました。
Obj-Cにおいてクラスは、クラスオブジェクト(ファクトリオブジェクト)であり、
インスタンスとはことなるものの、1つのオブジェクトなんですね。
ありがとうございました
355名称未設定:2011/12/12(月) 16:36:41.72 ID:dkDooTO60
NSPersistentDocument 使って iCloud 経由で
sync させる方法がわからん
356299:2011/12/12(月) 21:37:24.34 ID:zEo9t5R30
>>355
ところで、NSDocumentを使ってiCloud経由でsyncさせる方法なら分かるの?
357355:2011/12/14(水) 23:20:12.53 ID:NYY/gEzh0
Core Data アプリだから NSPersistentDocument しか試してない

WWDC の関連するビデオも全部見たけどわからん
サンプルコードも見つからないし
358名称未設定:2011/12/15(木) 23:21:23.43 ID:cIe55Fwt0
NSDocumentControllerのサブクラスを作って、独自にメソッドを追加しました。
NSDocumentController:sharedDocumentControllerで呼び出して独自のメソッドを使うと、動作は問題ないんですがコンパイル時にウォーニングが出て気持ち悪いです。
このウォーニングを消す方法ってありますか?
359名称未設定:2011/12/15(木) 23:23:32.84 ID:aGtzjtmS0
呼び出しの際に、(サブクラス*)でキャストでもすれば
360名称未設定:2011/12/17(土) 11:24:52.97 ID:Ebo/mWxbP
”/”下の"bin"や"etc"等を除いたFinderから見えるディレクトリのみを抽出したい場合、どのAPIを叩けばいいのでしょうか?
NSWorkspaceやNSFileManagerを調べましたが適切なメソッドが見当たりませんでした。
361名称未設定:2011/12/17(土) 12:44:30.86 ID:djIKo7NZ0
前になんちゃってFinderを作ったときは
ファイルの可視属性とかを見た
何を使うかは忘れた
362名称未設定:2011/12/17(土) 13:22:18.59 ID:CveDR/Vl0
>>360
何をしたいのか良くわからないのだが、NSFileManagerで大抵のことは
出来るよ。
363名称未設定:2011/12/17(土) 14:02:21.25 ID:9d5nSBo10
10.6 からこんなのあるね
NSDirectoryEnumerationSkipsHiddenFiles
使った事ないけど
364名称未設定:2011/12/17(土) 14:11:01.41 ID:FuOdLmmd0
NSFileManagerで、NSDictionaryでファイル属性取れたはず。
365名称未設定:2011/12/17(土) 17:19:43.19 ID:Ebo/mWxbP
これで解決できました。ありがとうございました。

NSArray *contentsAtPath = [[NSFileManager defaultManager]
contentsOfDirectoryAtURL:[self URL] includingPropertiesForKeys:nil
options:NSDirectoryEnumerationSkipsHiddenFiles error:nil];

Part.3の頃にも同じ質問がありましたが、現バージョンとは状況が違う様です。

366名称未設定:2011/12/17(土) 18:24:47.02 ID:CyHFPWob0
以前は不可視属性の取得はCore Services (Carbon)のFile Managerを使う必要が
あったかも。FSGetCatalogInfo()でFinderInfoがどうたらとか。
10.6から「これからはもうCocoaだけで」みたいな流れになってる様だから。
367名称未設定:2011/12/17(土) 22:05:01.04 ID:Ebo/mWxbP
>>366
NSURLのリファレンスを見ると隠し属性か否かを判断するNSURLIsHiddenKeyやら
エイリアスの作成と読み出しを行うfileReferenceURLと
bookmarkDataWithOptions:includingResourceValuesForKeys:relativeToURL:error:
が追加されていますね。

AliasManagerを叩いていたのはなんだったんだ。。。
368名称未設定:2011/12/17(土) 22:12:24.92 ID:FIsB815D0
全部cocoaで書いてやったぜ!とおもったらcarbon読み込んでたりして、なんとなく気持ち悪い
いつになったら100%cocoaになるのやら
369名称未設定:2011/12/18(日) 11:36:24.64 ID:gndZgD1+0
次の次か、次の次の次のOS Xに期待。
370名称未設定:2011/12/18(日) 13:39:39.62 ID:R/K+1HZq0
ジョブズも死んだしObj-Cやーめた
という展開もあり
秘密にしたいあれこれがあるiOSの方はハックしやすいObj-Cを苦々しく思ってる可能性も高いし
371名称未設定:2011/12/18(日) 14:46:41.38 ID:dkc1zNqw0
開発者切り捨ててライブラリも全部他の言語で書き直すのかよアホか
サードのも全部死亡

ねーよ
372名称未設定:2011/12/18(日) 15:21:18.56 ID:gndZgD1+0
他の言語とか何言ってんの?
373名称未設定:2011/12/18(日) 15:29:10.11 ID:tTFy08vK0
CもC++も使えるのに?
374名称未設定:2011/12/18(日) 15:29:44.23 ID:MqJUZwwB0
金がかかりすぎるし、第一アップルにとっても良いことがない。
375355:2011/12/18(日) 22:17:31.86 ID:iRh18riF0
Core Data を NSPersistentDocument 使って
iCloud 経由で2台のマックで同期させる事はできたけど、
NSPersistentStoreDidImportUbiquitousContentChangesNotification
が来ねーよ

一度アプリを立ち上げ直さないと UI がアップデートされん
376名称未設定:2011/12/18(日) 23:20:37.81 ID:A53iLWrT0
「Restart Application」
と、ダイアログを出せば解決(笑)
377355:2011/12/19(月) 00:55:14.55 ID:P+oxRMcY0
>>376
Notification が来ないからいつダイアログを出せばいいかわからん
378名称未設定:2011/12/19(月) 23:30:49.13 ID:EUNtOjV50
XCodeのビルド完了しましたーみたいな
画面中央の半透明グレーの正方形の中に通知出すみたいなのってどうやればいいの?
Cocoa用ライブラリある?
379名称未設定:2011/12/20(火) 00:44:39.16 ID:M5lzEEH+0
Growl使えば良いんじゃないの?
380名称未設定:2011/12/20(火) 00:51:56.24 ID:TRWd0+od0
自分でcore graphicsなりで描画すりゃいいじゃん
381名称未設定:2011/12/25(日) 07:44:15.59 ID:u7S5csMp0
手元のLion環境だと、キーボードショートカットで
Cmd+左右カーソルキー
が拾えない・・・予約されている?

SnowLeopardだと拾えるんだが・・・
382名称未設定:2011/12/25(日) 07:51:26.82 ID:u7S5csMp0
再起動したら直りました・・・orz。
383名称未設定:2011/12/27(火) 01:27:24.54 ID:c8JuqFtr0
>>380
そりゃそうだけど誰でも思いつく回答だね
それがめんどくさいから聞いてるに違いないに100ペリカ
384名称未設定:2011/12/27(火) 04:12:03.65 ID:N5SylmNC0
表示を担当してるのはBezelServiceだけど
こいつ確か非公開
385名称未設定:2012/01/18(水) 17:33:25.34 ID:5P52VMfQi
長方形の画像を平行四辺形に変形させたいのですが、
NSAffineTransformでいいのでしょうか?
拡大縮小回転まではわかるのですが、
変形がさっぱりでして。
386名称未設定:2012/01/18(水) 17:36:57.07 ID:19yyLfnu0
いいよ
387名称未設定:2012/01/18(水) 21:58:09.34 ID:BOeQ8lOT0
>>385
アフィン変換でググればきっとヒントが見つかる
388名称未設定:2012/01/19(木) 22:37:07.93 ID:sb7ItcrGi
ありがとうございます。出来ました。
NSAffineTransform ts = {m11, m12, m21, m22, tX, tY};
を噛ませばいいんですよね。

m12(Xの傾斜率)とm21(Yの傾斜率)の値が理解しにくい、
描画領域を拡大しないと変形後の画像の上下左右が切れてしまうので
それを描画領域を計算するのでハマってました。
389名称未設定:2012/01/22(日) 12:27:19.50 ID:wLMo14Kc0
test
390名称未設定:2012/01/29(日) 11:09:32.35 ID:5VNetiZN0
すいませんCocoaでのHTTPリクエストの書き方を質問させて下さい
2chのスレッドをGETしたいのですが、2chのサンプルにある

GET /namazuplus/dat/1230058090.dat HTTP/1.1

のCocoaでの書き方がわかりません

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://サーバー名"]];
[request setHTTPMethod:@"GET"];
[request addValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
....

とすれば良いのかと思ったのですが、GETのパラメータの /namazuplus/dat/1230058090.dat HTTP/1.1 はどこに書いたらいいんでしょうか?
391名称未設定:2012/01/29(日) 12:47:05.42 ID:tY9HtXm+P
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://サーバー名/namazuplus/dat/1230058090.dat"]];

で、いいんじゃないの?
392名称未設定:2012/01/29(日) 13:24:09.67 ID:5VNetiZN0
できました
ありがとうございました
393名称未設定:2012/01/29(日) 19:29:11.03 ID:Ci7VLfsh0
POSTやGET用のライブラリがあるが
394名称未設定:2012/01/31(火) 16:04:17.64 ID:Ny8WPcU00
cocoaAMFの参考になるサンプルとかサイトってない?
395名称未設定:2012/02/02(木) 22:38:29.83 ID:9E9ACtWi0
質問です。今、あるクラスの保持する配列を、2つのクラス(クラスA、クラスBとします)で共有
しようと思ってるんですが、例えば、クラスAのメソッドで、配列に要素を追加し、クラスBから
ゲッターで取得しても、配列の中が空になってしまいます。再び、クラスAのメソッドを実行すれば、
配列の要素は2個になる為、初期化等はされていないと思うのですが、どうすればいいのかわかりません。
対処方の分かる方、アドバイスお願いします。かなり初歩的な何かがダメな気はするんですが…
396名称未設定:2012/02/02(木) 23:12:00.01 ID:qySptqCP0
>>395
ちゃんと同じインスタンスを渡しているのか?
397名称未設定:2012/02/03(金) 02:17:16.70 ID:jz4TquAu0
わけのわからんことをうだうだ書いているヒマがあるならコードを晒せ
398395:2012/02/07(火) 00:38:52.93 ID:KhhLUod40
遅くなってすいません。ではコード晒します。クラスはTestとTestAとModelOfTestAAndTestの3つです。
TestでModelOf…の保持する配列に値を追加するのと、TestAクラスからその配列の値を取得するアクションを
それぞれ別のボタンにつないであります
@implementation TestA
-(id)init{
self=[super init];
if (self!=nil) {
model=[[ModelOfTestAAndTest alloc]init];
}
return self;
}
- (IBAction)testaction:(id)sender {
NSLog(@"%@",model.tesary);
}


@implementation Test
- (IBAction)tesaction:(id)sender {
[model Setself];
NSLog(@"%@",model.tesary);
}
-(id)init{
self=[super init];
if (self!=nil) {
model=[[ModelOfTestAAndTest alloc]init];
}
return self;
}
@end
続く
399395:2012/02/07(火) 00:39:17.74 ID:KhhLUod40
@implementation ModelOfTestAAndTest
@synthesize tesary;
-(id)init{
self=[super init];
if (self!=nil) {
tesary=[NSMutableArray array];
x=0;
}
return self;
}
-(void)Setself{
x=x+1;
[tesary addObject:[NSNumber numberWithInt: x]];
}
@end
です。よろしくお願いします。ヘッダーも晒した方がいいですか?
400名称未設定:2012/02/07(火) 01:05:26.43 ID:T4YM5u+K0
>>399
Test とか TestA とかじゃ何のためのクラスかさっぱり分からない。もっと意味のある名前を付けよう。
401名称未設定:2012/02/07(火) 01:14:27.01 ID:07jAnvCM0
>>398
>>396

TestとTestAでmodelに保持しているインスタンスが違う
402名称未設定:2012/02/07(火) 01:17:39.13 ID:5QxLtHJV0
というか[NSMutableArray array]ってARPで解放されるけどいいのか
403名称未設定:2012/02/07(火) 01:19:42.40 ID:T4YM5u+K0
ついでにちゃんとソース読んでみたけど、TestA と Test でそれぞれ ModelOf... のインスタンスを生成してるってことは、
別々の配列を参照してるわけで、片方の配列に入れた奴がもう片方の配列に入ってるはずがないよ。
根本的にクラスやインスタンスが何なのか分かってないんじゃないかな。
404395:2012/02/07(火) 01:23:52.14 ID:KhhLUod40
申し訳ないです…次回から気をつけます。要するにTestで値を配列に追加して、TestAで取得するので、
それぞれAddTesaryクラス、GetTesAryクラスとして見てください。お願いします。
405395:2012/02/07(火) 01:24:32.96 ID:KhhLUod40
申し訳ないです…次回から気をつけます。要するにTestで値を配列に追加して、TestAで取得するので、
それぞれAddTesaryクラス、GetTesAryクラスとして見てください。お願いします。
406名称未設定:2012/02/07(火) 01:31:15.85 ID:T4YM5u+K0
>>404
AddTestArray と GetTestArray の略かな? Cocoa ではそういうおかしな略し方はしない方がいいよ。
あと、それらのスーパークラスは? たぶん NSWindowController か UIViewController だと思うけど、後者だとしたらスレ違い。
(ここは Mac プログラミングのスレだから。)
407395:2012/02/07(火) 01:44:15.29 ID:KhhLUod40
>>401
>>402
>>403
連投申し訳ないです。やっぱりそういった基礎部分がおかしかったんですよね…cocoaの入門書とサイトでしか勉強して
なかったので、根本的な部分はあまり理解できてなかったみたいです。すいません。
ただ、インスタンスを生成してはいけないということは、インスタンスメソッドであるアクセサメソッドは使いえないので、

AddTesAry→ModelOf…←GetTesAryではなく、

GetTesAry→AddTesAry→ModelOf…という感じで、
AddTesAryのアクションを、GetTesAryのアクションの中でやるという形になるのですか?
とりあえずクラスとインスタンスの勉強をしてきます…
408395:2012/02/07(火) 01:54:17.32 ID:KhhLUod40
>>406
確かに説明しないとわからない略のしかたになってますねすいません。気をつけます。
これは質問のためのサンプルなのでNSObjectです。NSTableViewの表示するデータソースの配列をNSbrowserと
共有する事が目的なので、たぶん実際に使うのもNSObjectになるのかな?一応Macのプログラミングで考えてます。
409名称未設定:2012/02/07(火) 02:21:10.56 ID:T4YM5u+K0
>>408
Mac のコントローラは NSObject のサブクラスにするんだっけ。頭がすっかり iOS になってるなぁ。
で、何をするクラス? の答えとして欲しかったのは「NSTableView や NSBrowser のデータソース」みたいなこと。
クラス名からすぐ分かることが望ましいけど、分かりにくい場合は説明すればいい。
大事なのは、質問(ってか、クラス設計)する上でそれが重要な情報だってこと。
で、これらのコントローラの間でどうやってデータを受け渡すかを考えるためには、
・画面間の関連(または、どう遷移するか)
・そのデータや画面は何組存在するか(ウインドウを複数開くのか?)
といったことを知る必要がある。
とりあえずデータがひと組なら、シングルトンにすればいいのでは?
410名称未設定:2012/02/07(火) 02:57:36.39 ID:D0CsLJnL0
NSObject継承してController作ってawakeFromNibでUIの値初期化とか
もはや懐かしい
411名称未設定:2012/02/07(火) 03:35:20.65 ID:cQV2YljH0
えっ何か別のやり方があるんですか?
412395:2012/02/09(木) 17:48:27.99 ID:ivLO3oGB0
>>409
アドバイスありがとうございました。シングルトンがたぶんまさに僕の求めていた物になりそうです。
一応僕のアプリケーションは、シングルウィンドウで、画面間のやりとりは一切無いです。
要するに、browserでダブルクリックされた文字列を、tableviewの一番下に追加したい。というのが目的です。
ちなみに、ある変更可能なデータ(NSMutableArrayなど)をさまざまなクラスから変更、取得する場合、
このシングルトンが一般的な方法とみてしまっていいんでしょうか?
413名称未設定:2012/02/09(木) 18:03:56.48 ID:uHQzou8u0
>>412
>このシングルトンが一般的な方法とみてしまっていいんでしょうか?
いいえ かなり特殊な方法で、全く一般的ではありません
414395:2012/02/10(金) 17:39:05.67 ID:bqk6BCoi0
>>413
返信ありがとうございます。そんなに特殊なんですか?一般的な方法ってどんな感じですか?
415名称未設定:2012/02/10(金) 19:36:16.20 ID:PDJX9A2q0
シングルトンで実装する必要がないだろ。
クラスが複数作られるわけでもないんだから。
416名称未設定:2012/02/10(金) 19:52:30.99 ID:QqOMIQhMP
>>414
シングルトンの意味を正しく(ry
417395:2012/02/10(金) 20:59:46.16 ID:bqk6BCoi0
できました!!静的な型で宣言してクラスメソッドで変更をという形でやってみたらできました。みなさん
貴重なアドバイスありがとうございました。
>>415
詳しく調べてみたらそうですね…また複数クラスの時にまた勉強してみます。
>>416
プログラムの中でひとつだけインスタンスを生成するクラスというくらいしか理解できませんでした…

ただ、シングルトンの話のおかげで、静的な型の話にたどり着けたので、大変助けになりました。本当に
ありがとうございました。
418名称未設定:2012/02/10(金) 21:07:19.22 ID:dFqNvDrn0
>>417
もっとダメになった
419395:2012/02/10(金) 21:20:49.30 ID:bqk6BCoi0
>>418
本当ですか!?一応期待通りの動作はしてくれているんですが、何かデメリットがあったりするんですか?
420名称未設定:2012/02/10(金) 21:44:38.39 ID:dFqNvDrn0
オブジェクト指向ではオブジェクト同士の関連性が大事

インスタンスAとインスタンスBで同じインスタンスCを利用する場合
1、AがCを持ちAを知っているBがAからCの情報を得る。この場合、BがAを、AがCを生成して関連性を作る
2、AとBを統括するインスタンスDがCを持ちAとBはDを介してCの情報を得る。この場合DがA,BおよびCを生成しそれぞれの関連性を作る。この場合、AとBは互いに知る必要がない
3、Cのクラスのインスタンスの集合を持ち識別キーにより一意なインスタンスを返すオブジェクトEを用いる(シングルトンはこれの特殊な場合)。この場合もAとBは互いに知る必要がない

とか、かな?他にも色々ありそうだけど

2、でCがAとBを知る立場であるならDの役をCがやってもいいけど、この場合は当てはまらないよね
421名称未設定:2012/02/11(土) 12:08:17.06 ID:gZ97YTM8P
まさにスレタイ通りのレスに感動。
422395:2012/02/12(日) 23:43:30.62 ID:LK+s33yM0
>>420
とても丁寧な説明どうもありがとうございました!!
1の方法をHDMTさんのhttp://hmdt-web.net/seminar/CocoaSoftwarePattern/CocoaSoftwarePattern.pdfの
記事のドキュメントウィンドウパターンの部分を参考にして、実現する事ができました!!
ただ、質問ばかりで申し訳ないのですが、IBActionを持つクラスA、BでモデルCを共有する場合、
BはAを、AはCを生成するメソッドを持っていて、
B→A→Cの順に生成していき、参照できるように書き変えたのですが、実際に動かしてみたところ、
B→A→C→A→Cという順序で生成されました。おそらくこれは、ウィンドウが読み込まれた際、AクラスもBクラスも
IBActionを持つので、インスタンスが生成された。要するにB(→A→C)→A(→C)という形。わかりづらいかも
しれませんが、()内はB、Aのそれぞれのinitメソッドで生成されたもの、()外はウィンドウが読み込まれた
祭に生成されたものになってしまったのではないかと推測しました。肝心のAのIBActionは、二度目に生成されたAに接続
されているため、Bが参照しているCは1度目のもの、Aが参照しているCは2度目のものという状況で、
結局は共有できていません。長文で申し訳ないのですが、アドバイスいただけないでしょうか
423395:2012/02/13(月) 13:29:52.25 ID:oh032yef0
連投すいません調べてみたところ、たぶんKVCの方が簡単に実現できそうなので、そっちで頑張ってみます。
いくつものアドバイス本当にありがとうございました。
424名称未設定:2012/02/14(火) 14:11:56.03 ID:RMTE1ONE0
何でこういう人は普通に実装しないんだろう
425名称未設定:2012/02/14(火) 14:22:43.66 ID:PnmzXTNfP
実践より理論を先に理解したい人なのかも。
426名称未設定:2012/02/14(火) 16:15:02.33 ID:FN8K9BuD0
入門書とかサイトとかを流し読みして、基礎が抜けてるんだろう。
427名称未設定:2012/02/14(火) 22:12:42.82 ID:9KnWa8EW0
イベントの受け取りについて質問させてください。
rotateWithEventなどを実装したNSViewの上(IBの階層では下)にもう一つNSViewを置くと、イベントが検知できなくなってしまいます。
上にNSViewを置いてあっても下へイベントを伝える方法はないでしょうか?
428名称未設定:2012/02/14(火) 22:28:34.28 ID:PnmzXTNfP
上のビューで拾って下に回すとか。
429名称未設定:2012/02/14(火) 22:32:30.90 ID:DI3FmO5k0
上にのってるviewのrotateWithEvent:の中でsuperのも呼ぶ。
mouseDown:とかも同じ方法で下へ伝播できる。
430名称未設定:2012/02/14(火) 23:18:34.04 ID:9KnWa8EW0
>>428,429
ありがとうございます。透過するのではなく、上で拾って回すということですね。
その場合、上のビューはNSViewのサブクラスにしないといけないのでしょうか。
(ボタン等が載っているだけの単なるNSViewなので、できればクラスは増やしたくないのです)
431名称未設定:2012/02/15(水) 00:06:25.33 ID:uANOtk4u0
>429で言ってるsuperというのはsuperviewではなく、superclassの方。
レスポンダーチェーンにイベントを渡すってこと。

nsviewはuiviewと違って
色を付けるのにもサブクラス化しないといけないんだから、
クラスが増えるのがイヤとか言ってたら何もできない。
だったらそんなviewをなくせという話にもなる。
1つメソッドをオーバライドして、IBで設定するだけなんだし。
432名称未設定:2012/02/15(水) 21:04:28.35 ID:TAytDAgD0
>>431
なるほど、ありがとうございました。理解できました。
あと一つ質問させてください、NSMenuItemに割り当てられているアクションを実行したいのですが、どうしたらよいでしょうか?
NSMenuItemはアウトレットで取得できていますが、[menuItem action]ではセレクタが取れるだけで、実行先が見つからないのです。。。
433名称未設定:2012/02/15(水) 21:12:44.89 ID:0wXdc+/s0
performSelector的な
434名称未設定:2012/02/15(水) 21:19:17.94 ID:lSKn1XQG0
>>432
まず、
>NSMenuItemに割り当てられているアクションを実行したい
この希望が出る自体がおかしい。

それでも、どうしてもというのなら
Target-Actionパラダイムに付いて調べる
で、NSApplication.hを調べる
435名称未設定:2012/02/15(水) 21:23:16.18 ID:TAytDAgD0
>>434
まあ、確かにそうですよね。
実行したいのは、FirstResponderにあるopenLastItemなのですが、このメソッドの持ち主がわからないのです。
436名称未設定:2012/02/15(水) 21:24:43.49 ID:3SxI3jFs0
>>432
レスポンダチェーンでぐくれ。
簡単に説明すると、メニュー項目はファーストレスポンダ (現在キャレットのあるテキストビューなど)、
そのスーパービューやウインドウ、アプリケーション (それぞれのデリゲートを含む) に
順番にこのメソッド (action) 実行できる?と問い合わせて、できると答えた奴が実行する。
ので、レスポンダチェーン上のオブジェクトにメソッドを実装して、メニュー項目にはメソッド名だけ指定すればいい。
437名称未設定:2012/02/15(水) 21:30:27.51 ID:v6lwPlLr0
>>427
これ、良く考えたら普通に下のNSViewでイベントが受け取れると思うんだが。
実際、試してみてもちゃんとそうなるし。
どういうコード書いてんの?
438436:2012/02/15(水) 21:45:15.41 ID:3SxI3jFs0
補足すると、メニュー項目に限らず、ボタンとかでも同様で、
target-action パラダイムで target が nil の場合にこの動作になる。
Interface Builder 上では target が first responder ってことになってる。
first responder にはもともとよく使われるメソッドが一通り登録されてるけど、
見つからない場合は Interface Builder 上でメソッド名を追加もできる。
439名称未設定:2012/02/16(木) 09:05:20.36 ID:FJ7vSl8e0
iTunesUにある、Stanford UnivのiPad and iPhone Application Development
を見始めました。SDで十分だね・・・

Lesson 2をみて気になったので質問です。いくつかルールがあって、
・PropertyにInstance Variableを必ず割当する
・アクセッサ以外からは原則Instance Variableを触らない
・従ってinitで初期化せず、Lazy instantiationで対応する

1.インスタンス内部のメソッドからも、原則構文でのプロパティ呼び出しを
使え、と言っているようです。確かにバグは減るでしょうが、これは、
nonatmic限定でないと速度に著しく影響する気がします。
また、スレッドセーフでない構造になります。
そもそもこういう書き方(デザインパターン?)はよく使われる物なのでしょうか。

2.スレッドセーフにするために、同一のインスタンス変数に割当された
二つのプロパティ(例:foobar+foobarAtomic)を用意するというのは
思いついたのですが、現実的な対策はどのようなものがお勧めでしょうか。
440名称未設定:2012/02/16(木) 09:55:31.52 ID:0nrzNPFy0
> nonatmic限定でないと速度に著しく影響する気がします。

プロパティへのアクセスを、1秒間に10の何乗回繰り返す気だよ。
441名称未設定:2012/02/16(木) 11:08:07.21 ID:KH1JGkB+P
>>439
>1.インスタンス内部のメソッドからも、原則構文でのプロパティ呼び出しを
>使え、と言っているようです。

ARC 以前はそれによってメモリ管理のバグを減らせたんでしょうけど、
そのような副作用を利用する考え方は間違ってると思います。
プロパティである必要がないものまでプロパティにするのは有害な場合もあるでしょう。

スレッドセーフに関しては、個々のプロパティのレベルでスレッドセーフにしてもあまり意味がなく、
オブジェクト全体、あるいはもっと大きな単位で考えるべきだと思います。
ので、プロパティは基本的に nonatomic にしてます。
442名称未設定:2012/02/16(木) 12:16:02.11 ID:kGsWBYrv0
>>441
じゃあ、なぜデフォルトはatomicなんだろう?
まだ、主流の考え方ではないよね。
443名称未設定:2012/02/16(木) 13:19:09.53 ID:8EuiaslT0
言語のデフォルトは一度決めちゃうと簡単には変えられないので、あんまり関係ないと思う。
UIKit のヘッダ見てるとほとんどの @property は nonatomic 宣言されてるよ。
Foundation や AppKit も見てみたけど、@property ほとんど使われてない…。
444名称未設定:2012/02/16(木) 17:39:29.30 ID:kGsWBYrv0
>>443
UIKitは等は可能限りチューンするのがOS開発者の義務だろ。
FoundationやAppKitの時代は、、、
CoreDataぐらいのヘッダを見るのがいいと思うよ。
445名称未設定:2012/02/16(木) 19:47:22.26 ID:qbZLiB1y0
NeXT時代のフレームワークなんだから
446名称未設定:2012/02/19(日) 04:35:16.45 ID:ViNYrTqG0
447名称未設定:2012/02/19(日) 22:17:29.11 ID:KXWY/A8Z0
>>438
遅くなりましたが、ありがとうございました。うまく出来ました。
448名称未設定:2012/02/21(火) 13:24:47.61 ID:W4E6bxpI0
以下を実行するとシミュレーターと実機では異なる結果が出力されました。シミュレーターでは正しく出力されるので書き方は間違っていないように思うのですがiOSのバグでしょうか?
Xcode 4.3
iOS Deployment Target 5.0

出力結果
iPhone 5.0Simulator : 2012-02-21 04:06:03 +0000
iPhone4 iOS 5.0.1: (null)


NSString* dateString = @"Tue, 21 Feb 2012 04:06:03 GMT";
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"eee, dd MMM yyyy HH:mm:ss Z"];
NSDate* date = [formatter dateFromString:dateString];
NSLog(@"%@", date);
449名称未設定:2012/02/21(火) 14:01:25.88 ID:++S6zlVSP
NSDateをそのまま%@でログ出力するとどうなるん?
450名称未設定:2012/02/21(火) 14:09:00.03 ID:gAQNhCDL0
タイムゾーンがGMTになってるんじゃ
451名称未設定:2012/02/21(火) 15:21:02.69 ID:W4E6bxpI0
>>449
最後の2行を↓に変えても結果は同じでした。
NSLog(@"%@", [formatter dateFromString:dateString]);

>>450
3行目に↓を入れてみても結果は同じでした。
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

実機とシミュレーターで挙動が変わるのが困ったところです
452名称未設定:2012/02/21(火) 15:28:11.17 ID:++S6zlVSP
nullってことはNSDateの生成に失敗してるってことかな。
もっと単純なNSDateを生成してログ出して見れば?
453名称未設定:2012/02/21(火) 15:42:01.82 ID:W4E6bxpI0
[NSDate date]を実行するとシミュレーターでも実機でも正しく動作しました
NSDateFormatterを使った時に問題があるみたいです

シミュレーター
Log 1: 2012-02-21 06:38:59 +0000
Log 2: 2012-02-21 04:06:03 +0000

実機
Log 1: 2012-02-21 06:39:32 +0000
Log 2: (null)

実行した処理
NSLog(@"Log 1: %@", [NSDate date]);

NSString* dateString = @"Tue, 21 Feb 2012 04:06:03 GMT";
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"eee, dd MMM yyyy HH:mm:ss Z"];
NSLog(@"Log 2: %@", [formatter dateFromString:dateString]);
454名称未設定:2012/02/21(火) 16:05:59.78 ID:U51RXbO3P
Locale設定が必要だったはず
455名称未設定:2012/02/21(火) 16:30:58.76 ID:W4E6bxpI0
>>454
ありがとうございました
以下を加えたら実機でも正常動作しました

[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
456名称未設定:2012/02/26(日) 16:43:50.82 ID:Qq/C9pSZ0
10.5,10.6,10.7で同一バイナリ、バージョンによって処理を変えたいのですが
どのようにすればよいのでしょうか
10.5 -> 独自実装
10.6,10.7 ->新設されたAPIを呼び出す
のようなイメージです。
この場合、10.5のSDKを使えばよいのでしょうか?
457名称未設定:2012/02/26(日) 17:11:59.20 ID:F+Jejk/M0
NSStringFromClassを使って
目的のクラスがあるかどうかを確かめれば良い。

SDKは少なくとも10.6以降にしないと、その目的の新しいAPは使えない。
10.5対策の方は、ビルドの設定でBaseSDKを10.5にする。
そうすれば、多分、10.5でも動くはず。
でも、Xcode4.3では10.6以降しか設定できない。
458名称未設定:2012/02/26(日) 17:12:56.88 ID:F+Jejk/M0
間違えた。NSClassFromStringだった。
459名称未設定:2012/02/26(日) 17:21:40.81 ID:30666bU90
OSのバージョンチェックなら、NSFoundationVersionNumber定数を使った方がいいんじゃない?
460名称未設定:2012/02/28(火) 20:45:50.83 ID:Z/LHLAQL0
IKImageEditPanelって使ってる人いますか?
データソースやデリゲートを設定してやってsetImageで受け取ると、画像は変化しているのですが、filterArrayの中身がいつ見ても空っぽになっています。
CGImageをやり取りするのは遅いので直接フィルタをかけようと思ったのですが、空っぽだと何ともなりません。
何か他に設定するものがあるのでしょうか。。。
461名称未設定:2012/02/28(火) 22:26:56.20 ID:eaVUEfcp0
>>456
それは「新設されたAPI」というのにもよるんじゃ?
既存のクラスにメソッドが追加されたのか、クラス毎新規なのか。
あと既存のフレームワークに含まれているのかどうかとか。
462名称未設定:2012/02/28(火) 23:06:09.81 ID:nJANQ8Zi0
>>456
追加されたクラスは NSStringFromClass()、追加されたメソッドは respondsToSelector: で確認するのが基本。
OS そのもののバージョンチェックは、上記の方法ではできない場合に限るべき。
463名称未設定:2012/02/28(火) 23:45:38.92 ID:eaVUEfcp0
>>462
>NSStringFromClass

また同じことをw まさか>>457の人?
464名称未設定:2012/02/29(水) 00:39:12.58 ID:bsfW/gCz0
>>462
> respondsToSelector:

もしかして、instancesRespondToSelector:の間違い?
465462:2012/02/29(水) 01:02:09.71 ID:fjk4orHn0
>>463
ごめん、コピペした。NSClassFromString() です。

>>464
NSObject プロトコル (クラスじゃなく) で宣言されてるインスタンスメソッドの respondsToSelector: ですよ。
https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/occ/intfm/NSObject/respondsToSelector:

クラスメソッドの instancesRespondToSelector: は今知った。
466名称未設定:2012/02/29(水) 01:12:13.14 ID:bsfW/gCz0
>>465

respondsToSelector:のことは最初から知っているのだが、
今回あえてrespondsToSelector:を使うということは、つまり、
インスタンスをallocする直前でNSClassFromString()でチェックして処理分岐し、
そのインスタンスのメソッドを呼ぶ直前でrespondsToSelector:でチェックして処理分岐するということなのか?

いくらなんでも、分岐が細かすぎるような気がするけど?
467名称未設定:2012/02/29(水) 01:29:32.51 ID:fjk4orHn0
>>466
クラス自体が 10.6 で追加された場合 → NSClassFromString()
クラス自体は 10.5 から存在して、10.6 でメソッドが追加された場合 → 普通にインスタンス生成して respondsToSelector:
って一般的だと思うけど。
468名称未設定:2012/02/29(水) 06:29:07.04 ID:ojYiHtwD0
>467
+1。
469名称未設定:2012/02/29(水) 19:06:39.36 ID:bsfW/gCz0
>>467
> 普通にインスタンス生成して respondsToSelector:

respondsToSelector:の結果がNOだった場合、生成したインスタンスはどうするの?
破棄するぐらいなら、インスタンス生成前にメソッドの存在をチェックした方がいいのでは?
470名称未設定:2012/02/29(水) 19:11:58.31 ID:dzXCIiyp0
>>460
自己レスで恐縮ですが、どうも常に空の配列が返る仕様のようですね。
なぜこんなものがパブリックなプロパティなのかなー。
http://stackoverflow.com/questions/5928436/how-to-get-users-changes-using-ikimageeditpanel
471名称未設定:2012/02/29(水) 19:30:19.96 ID:bsfW/gCz0
>>462
> OS そのもののバージョンチェックは、上記の方法ではできない場合に限るべき。

今回は、OSのバージョンによって処理を変える話だと思うのだが、
OSのバージョンチェックが推奨されない理由を誰か教えて
472名称未設定:2012/02/29(水) 23:01:41.08 ID:c0TxPSNU0
473名称未設定:2012/03/01(木) 00:47:36.76 ID:8vNItHoA0
instancesRespondToSelector:というのがあってだな
474名称未設定:2012/03/01(木) 01:17:14.96 ID:j76TQxn30
>>472

そのドキュメントに書いてあるとおり、NSClassFromString()やinstancesRespondToSelector:で、
クラスやメソッドの存在をチェックするだけだと、まれに互換性を解決できないケースがあるので、
NSFoundationVersionNumberやNSAppKitVersionNumberを使って、OSバージョンを直接チェックする必要がある。
ってことだよね?

だから、クラスやメソッドを個々にチェックせずに、いきなりOSバージョンをチェックしても問題ないよね?
475名称未設定:2012/03/01(木) 01:32:18.09 ID:MF/9oBcP0
>>469
そのメソッドがなければそのクラスを使わないなら +instancesRespondToSelector: を使えばいい。
けど、自分の経験では、そのクラスは使いつつ、他のメソッドとかでなんとかすることの方が多いので。
あと、「普通にインスタンス生成」と書いたけど、実際には IB で作ったり、引数で渡されたりすることも少なくないし。

>>474
例えば doSomething というメソッドが 10.6 で追加されたとして、
if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_6) {
  [obj doSomething];
}
と書いた場合、「doSomething が 10.6 で追加された」ことをいちいちリファレンスで確認する必要がある。

これが、
if ([obj respondsToSelector:@selector(doSomething)]) {
  [obj doSomething];
}
だったら、doSomething がどのバージョンで追加されたかを気にする必要がなくなる。
476名称未設定:2012/03/01(木) 06:01:38.03 ID:EA0kUUPA0
>>474
VersionNumberのチェックじゃ不正確、不十分でしょ。

ヘッダの定義値が将来にわたって「削除されない」「ずれない」保証もないし。
ヘッダにミスがあったら、そのSDKでコンパイルされたバイナリは全滅じゃね?

>>今回は、OSのバージョンによって処理を変える話だと思うのだが
この考え方がそもそも正しくない。

>>475が正しい考え方。基本runtimeに問い合わせるのが安全なバイナリを作る方法。
477名称未設定:2012/03/01(木) 18:59:11.40 ID:j76TQxn30
>>475
> 自分の経験では、そのクラスは使いつつ、他のメソッドとかでなんとかすることの方が多いので。

それは一般的な話じゃなくて、あなたの個人的な流儀でしょ?

> doSomething がどのバージョンで追加されたかを気にする必要がなくなる。

どのバージョンで変更があったのかは、気にしなければならないのでは?
そもそもその理屈だと、フレームワーク内の全てのメソッド呼び出しをrespondsToSelector:でチェックしなければならなくなるよね?
respondsToSelector:でチェックしてから呼び出すメソッドと、未チェックで呼び出すメソッドをどうやって区別してるんだ?


>>476

ヘッダーファイルが壊れる可能性を考慮して、それに備えたコードを書くのは基本的に無理でしょう。
「VersionNumberのチェックじゃ不正確」などと言うレベルの話じゃなくなるし。
478名称未設定:2012/03/01(木) 19:06:52.20 ID:j76TQxn30
>>476
> 基本runtimeに問い合わせるのが安全なバイナリを作る方法。

「NSAppKitVersionNumber10_6」はヘッダーに書かれた定数値かもしれないが、
「NSAppKitVersionNumber」はruntimeで設定される値だろ。

NSAppKitVersionNumberのチェックはruntimeに問い合わせたことにはならないの?
479名称未設定:2012/03/01(木) 19:11:25.81 ID:Chrct+ZI0
API有無チェックもシステムバージョンチェックも両方使うよ。
API追加されたけどバギーで使い物にならないから、バグ修正されたシステム
から使用とか普通にあるでしょ。
480名称未設定:2012/03/01(木) 19:42:43.23 ID:PRbsyc5i0
ヘッダにミスっていうのはどういう意味なんだろうか。
定数10とするところを、9としたとかそういうこと?
481名称未設定:2012/03/01(木) 20:05:09.90 ID:MF/9oBcP0
>>477
>それは一般的な話じゃなくて、あなたの個人的な流儀でしょ?

Apple も推奨してるんだけど…。まぁどうしても自己流がいいなら、好きにすればいい。

>どのバージョンで変更があったのかは、気にしなければならないのでは?

10_6 と書くべき所を 10_5 とか 10_7 と間違えた場合、リファレンス見ないとチェックできないよね。
でも、メソッドの有無なら、ソースの該当部分を見比べるだけで済む。

昔からあるメソッドか、追加されたメソッドかを意識する必要があるのはどちらの方法でも同じ。
482名称未設定:2012/03/01(木) 20:18:11.35 ID:mtXU6tZ00
>>479
言いたいことが書かれてた
追加されたばかりのAPIでバグがある場合にバージョン判定を用いて処理を分けたことがある

respondsToSelector: だと予期せずPrivateAPIを呼び出してしまうこともあるね
どれかにこだわらず状況に合わせて使い分ける必要があると思う
483476:2012/03/01(木) 21:04:55.60 ID:sPSEygvF0
本来必要なのは
 ・OSやフレームワークバージョンによって処理を分ける
のではなく
 ・必要な機能、APIがサポートされているかによって処理を分ける
ことだと思う。

前者が必要なのは、せいぜいAPI側のバグ回避のケースくらいだろう。
バージョンベースの分岐には、そんなに信頼性あるとは思えないけどな。

複数のOSバージョンに対応させるなら、出来るだけ低いバージョンの環境を
基準にコードを書くよね?そうすると、バージョン違いのコード分岐なんて
ごく一部になる。そうじゃなかったら、それは設計が良くないと思う。

Appleがこっそりヘッダの修正するケースは、ヘッダの定義値とにらめっこ
するような状況にいれば普通に気がつく話だと思うし。
484名称未設定:2012/03/01(木) 22:26:31.36 ID:AIl8yWtI0
定数やC関数が増減したら、結局バージョンでチェックするんじゃないのかな
485名称未設定:2012/03/01(木) 23:16:37.59 ID:j76TQxn30
>>481
>10_6 と書くべき所を 10_5 とか 10_7 と間違えた場合、リファレンス見ないとチェックできないよね。

それは、単に定数値を書き間違えたのが悪いだけだろ。それに、ヘッダーに書かれている定数値はOSバージョンだけじゃない。
一般的に、定数値の書き間違えを含むコードの記述ミスの防止は、別途テストコードを書く事によって行っているんじゃないのか?
テストをせずに、ミスを無くそうするのは限界があるだろう。

>でも、メソッドの有無なら、ソースの該当部分を見比べるだけで済む。

リファレンスを見てチェックするのと、ソースを見比べてチェックすることの間に、いったいどれほどの差があるというのだ。

>昔からあるメソッドか、追加されたメソッドかを意識する必要があるのはどちらの方法でも同じ。

メソッドの動作が変更になったり、別のメソッドに置き換わったりするケースは意識しないの?

あと、さっきから「リファレンスなんか見たくない」って言ってるように聞こえるけど、
コードを書く時って普通にリファレンス見るでしょ?
486名称未設定:2012/03/01(木) 23:20:42.36 ID:j76TQxn30
>>483
>本来必要なのは
> ・必要な機能、APIがサポートされているかによって処理を分ける
>ことだと思う。
>バージョンベースの分岐には、そんなに信頼性あるとは思えないけどな。

話の内容を総合すると、同一のOSバージョンでも、実装されている機能が異なるケースがあるっていうこと?
487名称未設定:2012/03/02(金) 06:17:24.47 ID:s6I0os490
答え自分で書いてるよね。

>メソッドの動作が変更になったり、別のメソッドに置き換わったりするケースは意識しないの?
488名称未設定:2012/03/02(金) 15:27:40.90 ID:vYLmD7I30
489名称未設定:2012/03/02(金) 15:50:52.47 ID:G6ESEwkd0
関数はNULLと比較するのか。
490名称未設定:2012/03/02(金) 21:35:20.67 ID:HhughwTw0
>>487
同一のOSバージョンで、メソッドの動作変更はないだろ。
それに、動作変更になったメソッドは、いくらrespondsToSelectorを使っても判定できないだろ。
491名称未設定:2012/03/02(金) 21:57:05.62 ID:zImzKaI60
ユーザ環境で動きが違うケースは考慮しないの?

・別フレームワークで拡張されたケース、例:VideoDecoderAPIとかGPUの種類で違う動作
・ユーザが入れた機能拡張でランタイムに手が入ってるケース、
・ランタイムが管理者権限で動いているかどうか、例:アクセス出来るリソースの制限
・Sandbox内か否か、同上に加えて、AppleEventサポートとか
・ユニバーサルアクセスの補助記憶装置が有効か無効かとか、例:AppleScript系サポートの制限

普通に考えてOSバージョンは絶対じゃないし、あくまで機能の有無をランタイムに問い合わせするのが一番だと思うよ。
492名称未設定:2012/03/02(金) 22:25:46.50 ID:T+m3WeCM0
>>491
何を曲解し出してるんだ。
APIの有無チェックだけではAPIの動作の妥当性までは判らないから、
システムバージョンチェックの併用も必要という話なんだが。
プラグインや設定で動作が変わる物をシステムバージョンで調べる奴は居ない。
493名称未設定:2012/03/02(金) 22:57:12.36 ID:HhughwTw0
>>491
いったい何の話をしているんだ?
一度>>456に戻って読み直して来い。
494名称未設定:2012/03/03(土) 00:45:42.23 ID:+ZDKkh0j0
会社の会議とかでもよくあるんだよな。
話の前提とか範囲とか無視して自分の意見を始める奴が出てきて、
結局何の決定もできない、みたいな。
495名称未設定:2012/03/03(土) 06:14:50.59 ID:reXNBeY70
かみ合ってないのは認めるけど。

なぜバージョンチェックが必要と考えたか
>複数のバージョンのOS環境をサポートするため

複数バージョンをサポートする場合の考え方
>低いバージョンの機能を基準にコードを起こすべき
>差分を最小にしてテスト工程を最小化

生まれる差分はどこに存在するか
>実装を分ける必要があるかどうかで分岐

実装を分ける必要はどこからくるか
>実行環境=機能の有無(範囲)に依存

だから「バージョンのチェックでは不十分」だし、「機能の有無で判定すべき」
APIチェックもそうだし、ランタイムへの問い合わせが基本だという話。

機能は環境と同じ。MacはiOSみたいに閉じた世界とは違う。カスタマイズさ
れた環境を考慮しないといけない。

納品するようなコードの考え方ってこうだと思うんだが・・・よそは違う?
496名称未設定:2012/03/03(土) 20:24:19.59 ID:h4KCJc2G0
>>495
だいたい、その通りの話だとは思うが、なぜ

> だから「バージョンのチェックでは不十分」だし、「機能の有無で判定すべき」

という一文が入るんだ?
そこだけ話が繋がっていないぞ。

> APIチェックもそうだし、ランタイムへの問い合わせが基本だという話。

バージョンチェックだってランタイムへの問い合わせだろうが。
497名称未設定:2012/03/03(土) 20:30:32.47 ID:h4KCJc2G0
なんか、これまでの話からすると、
『複数バージョンをサポートするために、リファレンスを見て設計を検討するのは、面倒だからヤダ』
と、駄々をこねているようにしか思えない。
498名称未設定:2012/03/03(土) 21:01:28.85 ID:GFuU/fxC0
いちいちageるな
499名称未設定:2012/03/03(土) 21:08:18.82 ID:6BAzUDJ00
agesageに一体何の意味が?
どっちでもいいでしょ
500名称未設定:2012/03/03(土) 21:39:46.91 ID:DD6xNEeh0
どっちでもいいと思うのなら喜んでsage入れとけばいいんじゃね
501名称未設定:2012/03/03(土) 22:23:56.97 ID:Zg6UjOl00
誰も彼もが専ブラを使ってるわけじゃないし。
502名称未設定:2012/03/03(土) 22:37:52.45 ID:+ZDKkh0j0
あるクラスやメソッドがあるかないか、を判定するときに
NSClassFromString()/respondsToSelector:等を使えば、常に判定は正しい。

一方「OSのバージョンが○○ならある/ない」という知識を元にした判断の場合、
判定が正しいことが保証されるのは、この知識が及ぶ範囲のみ。
すなわちそのコードを書いてバイナリを生成した時点で知り得た知識での範囲。

というわけで、前者の方がより適用範囲が広いと言える。
503名称未設定:2012/03/03(土) 23:14:21.14 ID:p7Ld3eXz0
504名称未設定:2012/03/03(土) 23:35:34.30 ID:0iBlPqFC0
h4KCJc2G0 = p7Ld3eXz0 かな。

バージョンチェックに固執してるのは、楽してテスト工程をさぼりたいってのが本音では?

メンテの手間を考えると、設計時にバージョンで分岐します、って書けばそりゃ楽だけどさ。
あとからバグが出て仕様書の追求で紛糾するのはやだよ。そんなコードサポートしたくない。
505名称未設定:2012/03/04(日) 08:16:35.96 ID:LnAzNB6a0
506名称未設定:2012/03/05(月) 22:58:59.48 ID:ca7Kgb860
質問させてください。
NSImageViewの背景色を変えたいのですが、うまくゆきません。
またできれば、背景色を半透明にしたいと思っています。
どうやるのが良い方法でしょうか?
507名称未設定:2012/03/06(火) 00:50:35.74 ID:vbLttXGi0
>>506
NSImageViewの背景色っていうのは、つまりIBで言う所のBorderのこと?
それをカスタマイズするには、NSImageCellのサブクラスを作って、drawWithFrame:inView:をオーバーライドかな。
508名称未設定:2012/03/06(火) 07:32:42.98 ID:Gsc1wdJc0
>>507
ありがとうございます。
Borderはちょっと違うように思うのですが、IBで言うなら、たとえばNSTextFieldのBackgroundの項目です。
509名称未設定:2012/03/09(金) 14:28:44.80 ID:Lf8Zmbui0
>>508
透明にしたいだけなら、
- (void)drawRect:(NSRect)rect {
[[NSColor clearColor] set];
NSRectFill(rect);
}
とかやればできるから、drawRectを見直すのがいいんじゃね?

510名称未設定:2012/03/09(金) 16:05:23.20 ID:EpNgcoHd0
>>509
それだと単に透明になって何も表示されないんじゃないか?
511名称未設定:2012/03/09(金) 18:27:42.06 ID:H0HJ22QNP
その後に描く命令を書けば
512名称未設定:2012/03/09(金) 20:03:26.01 ID:y39ISRvD0
>>509
なんか話がずれてるぞ。

NSImageViewの話をしているのだから、グラフィックの描画を行っているのはNSImageCellだろ。
それとも、imageの描画ぐらいNSImageViewを使わずにNSViewをサブクラス化して、
-[NSImage drawInRect:fromRect:operation:fraction:]を使えと言いたいのか?
513名称未設定:2012/03/15(木) 15:31:18.09 ID:x3yUv0Cb0
iOSでiCloudで同期するCore Dataの使い方を勉強しているのですが以下のサイトで基本的な解説を見つけました
http://goddess-gate.com/dc2/index.php/post/452

このサイトの5th stepの部分で@private部で
NSFetchedResultsController *fetchedResultsController__ ;
NSManagedObjectContext *managedObjectContext__;
と宣言しろとあるのですが、末尾の2つのアンダースコアに何か特別なしくみがあるように書いてあるのですが
その意味がよくわかりません。これをつけると何が変わるんでしょうか?
またこのしくみをつかうとiCloudでの過剰な同期を避けられるというように書いてあるんですが、やはりこれを
使ったほうがいいでしょうか?この宣言がなくても動作はするようなのですが...
514名称未設定:2012/03/15(木) 16:00:39.05 ID:2QSuDmFv0
チラ見だけど
__ なしだとKVCで何度もマルチスレッドで参照されちゃうから
て書いてるような気がする
515名称未設定:2012/03/15(木) 16:56:55.33 ID:IPFAFpFh0
Cocoa Bundleでプラグインを作る場合、

アプリ本体→10.5SDKでビルドされたもの
プラグイン→10.7SDKでビルド

これって不具合とか起こる?
516名称未設定:2012/03/15(木) 17:03:53.52 ID:2QSuDmFv0
>515
起こせる
517名称未設定:2012/03/15(木) 18:50:49.74 ID:hBFGlITi0
10.7未満で未実装のAPIを呼んだらNG
あとは-mmacosx-version-min次第か
518名称未設定:2012/03/15(木) 19:16:14.70 ID:zQjqo6tT0
>>513
ようするに、変数名が"fetchedResultsController"でなければ、何でもいいということなのかな?
もしくは、
+ (BOOL)accessInstanceVariablesDirectly {
return NO;
}
を実装すれば済むとか?

なんか、微妙に断片的なコードで、チラ見しただけだといまいち良く分からない。。。
519名称未設定:2012/03/15(木) 22:35:04.28 ID:biQkNn1g0
とりあえずKVC経由で意図せずに外部からアクセスされるのを防ぐ、ということのような。

>>518
accessInstanceVariablesDirectly だと、特定のインスタンス変数に関してNGだが
その他はOK、みたいなときに困るんじゃ? all or nothing な設定というか。
520名称未設定:2012/03/21(水) 10:11:35.74 ID:wHzLysi+0
int i;//ループカウンタ
for (i=0; i<roop; i++) {
//下記のメソッドでframeサイズを決定して描画しています
WebView *webView = [[WebView alloc] initWithFrame:[self webViewRect:i+1 all:roop]];
[webView setMainFrameURL:[[urlStringArray objectAtIndex:i] string]];
[scrollView addSubview:webView];
[webView release];}
//こちらのメソッドは、分かりにくい事になっていますが、ウインドウサイズと描画するWebViewの個数に合わせて、各WebViewのframeの大きさを決定するようになっているメソッドです
- (NSRect)webViewRect:(int)returnvalue all:(int)a
{ NSSize winSize = [window frame].size;
NSRect rect;
int column=0;
do {column++;} while (column*column < a);
int b=returnvalue%column;//何個目の列か(結局1を引く事になるが、分かりやすさのため無視する)
if (0==b) {
b=column;}
int c=returnvalue/(column+1)+1;//何個目の行か
rect.origin.x = (float)(b-1) * (winSize.width/(float)column);
rect.origin.y = (float)(c-1) * (winSize.height/(float)column);
rect.size.width = winSize.width/(float)column;
rect.size.height = winSize.height/(float)column;
printf("%f,%f,%f,%f¥n", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
return rect;}
というようなコードの結果として、ページが表示されるのですが、なぜか、
http://iup.2ch-library.com/i/i0592972-1332292095.png
このようにバグってしまうのですが、何が原因なのでしょうか。教えてください。




521名称未設定:2012/03/21(水) 10:53:02.61 ID:/GEIK5wT0
webViewRectの上から下まで全ておかしい。とだけいっとく。
522名称未設定:2012/03/21(水) 12:05:18.38 ID:wHzLysi+0
根本的な解決ではないのですが、InterfaceBuilderを使って、静的に一枚webView(hiddenフラグを立てて)を貼っておいたところ、なぜかバグらなくなりました。ありがとうございました。
523名称未設定:2012/03/21(水) 21:36:02.69 ID:isLOrdOt0
マクロで、SDKのバージョンを表しているものってありましたっけ?
SDKのバージョンによって、特定のコードの箇所を#ifでコメントアウトしたいのですが。
524名称未設定:2012/03/21(水) 22:32:39.82 ID:3wxAyHHz0
>> 520
> [scrollView addSubview:webView];

NSScrollViewにaddSubview:はダメだろ
525名称未設定:2012/03/21(水) 23:42:27.90 ID:yTZdON2Q0
>>523
MAC_OS_X_VERSION_MAX_ALLOWED とか?
http://developer.apple.com/library/mac/#technotes/tn2064/_index.html

でも、普通はそんなの使わずに、最新の SDK を使って、respondsToSelector:
などで場合分けすべき。
526名称未設定:2012/03/21(水) 23:48:13.61 ID:9JaotiKZ0
いやいや、マクロで動的処理分けは出来ないよ
527名称未設定:2012/03/21(水) 23:59:37.82 ID:3wxAyHHz0
>>526
いやいや、静的に処理分けする話なんだろ。きっと
528名称未設定:2012/03/22(木) 01:13:28.11 ID:1xIFFBaN0
base SDKのバージョンが変わりうる場合はそういうマクロでメソッドの定義の有無を分けたりするな
529523:2012/03/22(木) 05:37:32.61 ID:w/oHr9/K0
>>525-528
えっと静的なコンパイルの処理分けです。
具体的にはあるバージョンのSDKから有用な定数変数が導入されたので、
それが定義されてるバージョンではそれを使い、そうでないバージョンでは
適宜宣言をして使うということをしたいのですが。
で、状況によってSDKのバージョンも変えたいというわけで。
MAC_OS_X_VERSION_MAX_ALLOWEDはいいかもしれないですね。

とここまで書いて、
もしかしたら動的にCFBundleGetDataPointerForName()とかで動的にシンボルを
チェックしてほげほげしたらいいかな???
530名称未設定:2012/03/22(木) 16:12:48.60 ID:drQcguCa0
動的処理振り分け
追加されたクラス、メソッドと同等で同名のものをバンドルにまとめる
そのバンドルを内包し、起動時に必要ならバンドルをロードする
とすれば本体側は振り分け不要

だけど、C++のoperator overloadと一緒でバグなどの時に無駄に時間を取られる可能性もある


てのを思いついた
531名称未設定:2012/03/25(日) 00:14:11.21 ID:Q/8yxJBp0
将来的にAppkitとUIKitって統合されたりしないのかな
532名称未設定:2012/03/25(日) 00:19:04.46 ID:e3JUuT3R0
しねーよ。
533名称未設定:2012/03/26(月) 00:30:35.04 ID:6l7230yBP
UIKitでMacアプリが作れるようになる可能性はあるかもね。
534名称未設定:2012/03/26(月) 00:37:30.37 ID:18RIt2yG0
UIViewの多機能ぶりがすごいからな。
NSViewさんの立場がないぜ。
535名称未設定:2012/03/26(月) 00:39:21.40 ID:G7/58trR0
UIWindow が UIView のサブクラスなのはビックリだけど
536名称未設定:2012/03/26(月) 01:48:20.38 ID:i++HgPU90
NSWindowのアイコン+タイトル文字列のコンポーネントをちょっと左にずらしたり一時的に非表示にしたいんだけど
どうすればいいかなー
537名称未設定:2012/03/26(月) 03:09:10.49 ID:ezA3cMWd0
>>536
あれらもビューだから無理矢理やれば可能かと
538名称未設定:2012/03/26(月) 06:10:32.18 ID:G7/58trR0
>>537
無理矢理<ここw
NSWindow の contentView があってのがあというのが美しいと思うんだけど
UIView なんだから UIView の中に UIWindow 入れれるかと言うとなんか変だし。まあ、Expose のようなの簡単にできるんだったら便利か
539名称未設定:2012/03/26(月) 21:31:17.81 ID:UwI1OjnX0
>>536
アイコンやタイトルを非表示したいというのはまだ分かるが、「ちょっと左にずらしたい」っていうのは一体なんのために?

ちなみに、NSWindowにはそんな器用なことする機能はないので、titleに空文字を設定するなどしてタイトルを非表示にしてから、
手動でタイトルバーの位置にアイコンとタイトル文字列を描画するしかない。
540名称未設定:2012/03/26(月) 22:04:23.70 ID:ezA3cMWd0
NSWindow.h

id _contentView;
id _borderView;


+ (NSButton *)standardWindowButton:(NSWindowButton)b forStyleMask:(NSUInteger)styleMask;
- (NSButton *)standardWindowButton:(NSWindowButton)b;



この辺りいじってみたり、subviews取得してみたり。
_contentViewなんかはobjc-runtimeのAPI使えば取れる。
541名称未設定:2012/03/26(月) 22:20:32.72 ID:bJu3ERRf0
>>540
contentViewは公開のアクセサあるよ
542名称未設定:2012/03/26(月) 22:52:15.27 ID:UwI1OjnX0
タイトルバーをいじるなら、contentViewじゃなくて、borderViewの方だろう。
borderViewは非公開のアクセサあるよ。

とはいえ、たしかタイトル文字列は独立したViewではなく、タイトルバーのグラフィックの一部として描画されてた気がする。
結局、手動でタイトル文字列を描画するハメになるなら、非公開APIを使う必要ない。
543名称未設定:2012/03/27(火) 00:02:19.59 ID:5fj0+yfN0
タイトル空にして
-standardWindowButton:
のスーパービューにビュー乗っければ何とかなったりしそうな気がしたりしなかったり
手動で描くとか面倒だしNSButtonでimageとtitle設定すればそれなりになるでしょ
544名称未設定:2012/03/27(火) 07:28:35.97 ID:hI1KJWQ90
手動で書くと右クリックメニューの生成もやらにゃいかんのでは?
地味に面倒そうだなここ
545名称未設定:2012/03/27(火) 09:41:11.42 ID:6RF1mhin0
自前のタイトルバーは、絶望的に難しいので諦めた記憶が。
iTunesのミニプレイヤーみてるとAppleは卑怯だと感じる。
546名称未設定:2012/03/27(火) 11:31:03.75 ID:9jd5OpNoP
QTプレイヤーでフルスクリーン時に出るフローティングコントローラーもどきは
自前でNSWindowから作ったことあるよ。
NSWindowは透明にして上に貼りつけたNSViewでウインドウもどきを作って。
547名称未設定:2012/03/31(土) 23:38:00.28 ID:RX/4A2/NP
>>545
 まあ、アップルのフレームワークは、社内でじっくり熟成、運用してから公開するんやけどな。
他の会社みたいに、自分で使い物しない物を安易に公開しない。
548名称未設定:2012/04/06(金) 23:51:57.19 ID:lxQ5qS770
質問です。ドキュメントベースアプリケーションで、xibファイルに配置したGUIが反映されない現象が起きてしまい、
色々調べてみて、クリーンアップやらなんやら試してみたのですが上手く行かず、困っています。
しかもアプリを起動して新規ウィンドウが表示されたときと、アプリを起動したままファイルを読み込んだ時はしっかりと
反映されているのですが、アプリを終了した状態でファイルを読み込んだときは反映されないというよくわかんない状態です。
もし分かる方がいましたら、よろしくお願いします。
549名称未設定:2012/04/07(土) 00:17:40.72 ID:iCJLk6vS0
>>548
DebugとReleaseに新しいのと古いのが一つづつある
550名称未設定:2012/04/07(土) 00:31:40.33 ID:Q5/HKp6o0
>>548
> アプリを終了した状態でファイルを読み込んだときは反映されない

それって、どういう意味だ?
アプリを終了した状態なら、そもそもファイルを読めないだろ。

ちなみに、そのxibファイルって、ローカライズとかしてる?
それから、「xibファイルに配置したGUIが反映されない」って、具体的に言うとどういう状態?
たとえば、NSButtonを配置してもnibファイルを読み込むとそこが空白になるとか?
551548:2012/04/07(土) 00:40:59.78 ID:xMDBYqoc0
おぉ、素早いレスありがとうございます。

>>549
やっぱりそういう感じですよね…IBOutletしていないNSBoxとかまで表示されてなかったので、
古い方を認識されていたんだなぁ…ちょっと試してみます。

>>550
なんというか、Excelとか起動してなくても、保存したファイル開こうとすると自動で起動してファイルの
内容表示するじゃないですか。そのパターンの場合のみ不都合が起きます…

ローカライズはしてません。上でも書きましたが、IBOutletで接続してあるとか関係無しに、配置した物が
全て消えます…
552名称未設定:2012/04/07(土) 01:17:37.93 ID:Q5/HKp6o0
>>551
なんかそれは、>549の言うように、どこかに別バージョンのアプリが存在しているように思えるなぁ

> 保存したファイル開こうとすると自動で起動して

ファイルを開こうとするとアプリが起動するわけだが、
その起動したアプリを「アクティビティーモニタ」で選択して「詳細を表示」とやって、
「開いているファイルとポート」タブを選択すると、そのアプリのファイルパスが分かるはずだ。
確認してみろ。
553名称未設定:2012/04/07(土) 02:32:22.62 ID:AgNs99kf0
>>552
Dockにあるのをコマンドクリック
554548:2012/04/07(土) 12:17:32.90 ID:xMDBYqoc0
>>552 >>553
旧バージョン見つかりました 笑
それを削除してもう一度試してみたところ、変更が全て反映されました!!丁寧な解答ありがとうございました!!
555名称未設定:2012/04/08(日) 16:54:14.22 ID:90EH6OGo0
iTunes等で動画をフルスクリーン再生していても,さらにその上にアプリのウィンドウを表示したいのですが(Growlのように),何か方法はありますか。
556名称未設定:2012/04/08(日) 23:35:41.97 ID:S2g5XjJS0
>>555
どうやってフルスクリーンにしているかによるかな?
ディスプレイを占有してるなら難しいが、
NSWindowを画面いっぱいに広げてるだけなら、
NSWindow.levelを設定すれば、フルスクリーンなウインドウより手前にウインドウを表示させることはできると思う。
557名称未設定:2012/04/09(月) 15:11:49.29 ID:MsO60Qrv0
>>556

ありがとうございます。NSWindowのlevel試してみます。
558名称未設定:2012/04/09(月) 17:21:14.12 ID:MsO60Qrv0
>>555
NSWindowのlevelのみでは,Lionのフルスクリーンではうまく動作しませんでしたが,その後も色々と検索した結果,
[window setLevel:kCGMainMenuWindowLevel-1];
[window setCollectionBehavior:NSWindowCollectionBehaviorStationary|NSWindowCollectionBehaviorCanJoinAllSpaces|NSWindowCollectionBehaviorFullScreenPrimary];
及び
info.plistの"Application is agent (UIElement)"をYES
とすることで,フルスクリーンで動画を再生している場合でも,常に手間に表示
することができました。
ありがとうございます。
"Application is agent (UIElement)"をYESとすると,Dockアイコンが消えるので,
これは問題といえば問題ですが…
559名称未設定:2012/04/26(木) 12:14:02.49 ID:XoxTeTL50
以下の画像のウインドウの右側のように、項目ごとの情報を縦に並べて色つきで表示するには、
どのVIewを使うのが一般的なのでしょうか。

http://a1.mzstatic.com/us/r1000/082/Purple/76/b5/83/mzl.oarwiktb.800x500-75.jpg

NSCollectionViewでbindingを使って実現しようとしたのですが、
縦一列に並べたいのに横方向にも空のタイルが並んだり、
連続する項目を同じ色にできなかったりと、目的が違うようです。
560名称未設定:2012/04/26(木) 13:54:18.02 ID:iOhHiHTH0
CollectionViewの機能が使いたいんじゃなきゃ(ソートとかドラッグドロップのアニメーションとか)
NSTableViewにするんじゃないかな?
行ごとに色付けるなら私ならwillDisplayCellのdelegateの中でやる。
561559:2012/04/26(木) 14:44:46.38 ID:XoxTeTL50
>>560
おお、NSTableViewでカラム1つ、ヘッダー無しにしたらできました。
感謝です!!
562名称未設定:2012/04/27(金) 20:05:36.91 ID:8ICkDPpo0
> NSTableViewでカラム1つ、ヘッダー無し

それなら、NSMatrix使うのといっしょなんじゃ?
563名称未設定:2012/05/02(水) 18:45:45.32 ID:ah89ESQ70
Document-Basedかつ完全にビューワーアプリで、Versionsの機能いらないんだけど、どうしても外せなくて困ってます
特にウィンドウに「 - Locked」とか付くのを外したいのですが、
どうやって「このドキュメントはVersionsに対応してないドキュメントだ」って明示的に指定するのでしょうか…
564名称未設定:2012/05/02(水) 20:10:20.07 ID:jd0VF7s/0
>>563

Documentクラスに書いてある

+ (BOOL)autosavesInPlace {
return YES;
}

これを消すかNOを返せば良いかと。
565名称未設定:2012/05/02(水) 22:58:25.12 ID:ah89ESQ70
>>564
ありがとうございます!
566名称未設定:2012/05/04(金) 09:56:37.98 ID:hl7Tyzh90
今更だけどBlocksって便利だな
気をつけないとBlocks内にだらだら書いてしまうけど
567名称未設定:2012/05/04(金) 12:00:59.70 ID:Ng8Os7TI0
iOSの写真アプリをMacに移植したいんだけどうまくいかないっす
trackSwipeEventWithOptionsとか使えばいいのはわかるんだけど、イマイチうまくいかない…
568名称未設定:2012/05/08(火) 12:25:12.57 ID:wNiDL1Id0
amazonでページトップの
おすすめ商品を見るにはサインインしてください。 のサインインへ移動した後の
ページで読み込み完了が非常に遅く(十数秒)になります

webView:resource:willSendRequest:redirectResponse:fromDataSource:
でロードしている物をしらべてみると
mercury9.swfを呼び出しているところで遅くなります
単独でmercury9.swfにアクセスするとすぐにロード完了します
safariでは問題ありません。

なにか特別な処理が必要なのでしょうか?
569名称未設定:2012/05/08(火) 23:33:21.73 ID:/kRs+PfR0
Cocoaビギナーです。

球体のリストアイコンを自作アプリでも使用したいのですが、
どうやったら表示できるのでしょうか?

たとえば、システム環境設定 > ネットワーク設定画面では、
 ○ Ethernet
 ○ AirMac
 ○ FireWire
のようなリストが表示されます。
各項目の左端に、接続中の場合は緑色、切断/未接続の場合は
赤色の球体アイコンが表示されます。

このアイコン(画像イメージ)は、Cocoaのライブラリにあるのでしょうか?
それともカスタムセルで描画系APIを駆使しなければならないのでしょうか?

キーワードだけでもよいので、ご存じの方は教えてください。
570名称未設定:2012/05/09(水) 00:42:30.70 ID:tB71JB69i
画像を自分で作ってリソースとして登録しておくんだよ。
で、NSImageViewなりで状況に合わせて画像をセットするんだよ。
システムで用意された画像がどこかにあってそのパスを指定してもいいけど、
パスがいつ変更されてもおかしくないので、自分で作るんだよ。
571569:2012/05/09(水) 00:59:06.72 ID:w8vM+iT30
ググりまくって、ようやく見つけました。
NSImageのimagedNamed:メソッドを使えばよさそうです。
ttp://tips4all.net/osx-application-red-orange-green-icons.html

>>570
最初はそう思ったのですが、いろんなアプリで使用されていたので
たぶん何か方法があるんじゃないかと思っていました。
572名称未設定:2012/05/09(水) 10:21:44.79 ID:WckUpJKQi
おお、こんなのがあったんだ。
知らなかった。
こっちも勉強になりました。
573名称未設定:2012/05/11(金) 22:50:26.99 ID:qyFG7Ihy0
>>571
ググりまくる前にNSImageのドキュメントをよく読めばよかったのにねw

マニュアルに書いてあるように10.6からサポートとか割と最近なので(古参のCocoa
プログラマ的にはw) そんなに知られているとは言えないかも。

実際には以前からいろいろ参照できるイメージがあったし、各種フレームワークの
中に入っているものは勝手に使えてしまったりするが、マニュアルに明言してなくて
サポートが不透明だったり。中の人は話し合ってやってるだろうからいいけどw
574名称未設定:2012/05/26(土) 19:30:56.32 ID:ZtdkJKg30
すみません、調べてもどうもよくわからないのですが
Dockアイコンにフォルダをドロップしたりして開けるようにするには
plistファイルにUTIをどう指定するべきなのでしょうか?
575名称未設定:2012/05/26(土) 20:37:38.98 ID:iBPAbKb90
>>574
ん? ファイルじゃなくてフォルダなのか?
で、フォルダをドロップしたら、何が開かさるんだ?
576名称未設定:2012/05/26(土) 20:52:07.51 ID:cAl640W90
>>574
public.folder (kUTTypeFolder)
577名称未設定:2012/05/26(土) 20:59:19.54 ID:dU+AHbFL0
>>574
Document OS Types に fold を指定すればいいだけだけど
それに加えて UTI に指定したいってことなの?
578名称未設定:2012/05/26(土) 21:19:19.91 ID:ZtdkJKg30
>>576,577
ありがとうございます。色々と試したところ何とかなりました。
>>574
フォルダの中の対応ファイル全部です。しかしこういう挙動は、App Sandboxのせいでそろそろ不可能かもしれませんね。
通常はユーザが開いたファイル以外を開くことはできないみたいですが、フォルダを開くとどういう挙動になるのかよく判ってないので試してみます。
579名称未設定:2012/05/26(土) 21:38:25.01 ID:iBPAbKb90
>>578
> フォルダの中の対応ファイル全部です。

その場合、通常はフォルダの中にあるファイルを複数選択して、Dockアイコンにドロップすると思う。
580名称未設定:2012/05/26(土) 21:49:14.73 ID:ZtdkJKg30
>>579
確かに、そういうやり方の人だけが使うならフォルダに対応する必要もないですね…
ちなみに、ファイルの中身がたくさんあったとしても、自分でひとつひとつ選択して開いてますか?
581名称未設定:2012/05/26(土) 22:04:25.63 ID:iBPAbKb90
>>580
フォルダのパスを渡して、「この中から必要なファイルを全て開け」ってやるようなアプリケーションを見た事がない。
例えばXcodeなら、あるフォルダ内の複数のソースファイルを編集できるけど、開くのは.xcodeprojファイル一つだけだ。
582名称未設定:2012/05/26(土) 22:24:11.02 ID:dU+AHbFL0
>>581
フォルダの中のそのアプリが対応しているファイル全部っていうことじゃないの?
画像ビューアだったらそういうのはあるよ
583名称未設定:2012/05/26(土) 22:26:47.17 ID:dU+AHbFL0
>>582,581
Preview.app なんてまさしくそうだね。というのを今知ったw
584名称未設定:2012/05/26(土) 22:44:08.62 ID:ZtdkJKg30
>>581
まあ、作る側としては選択してもらって開くのもいいですし、フォルダごと渡してくれても大丈夫にできれば
そのへんはユーザーの使い方次第かなと。
>>582
その通りです。他にはファイル名変更ツールなんかもこういう局面ありますね。
585名称未設定:2012/05/27(日) 14:46:14.91 ID:BVwzv36b0
>>581
iTunesやApertureもフォルダドロップできるね。手元にないけどきっとiPhotoもできるんじゃないかな?
586名称未設定:2012/05/31(木) 18:36:57.06 ID:s45huoPO0
今までiOSをやってて、今回Macを初めて作ってるのですがつまってしまいました
NSMutableArrayにNSNetServiceBrowser: didFindServiceのところで値を入れても
numberOfRowsInTableViewで値をチェックするとNSMutableArrayが空になってしまいます
NSMutableArrayに格納しようとしているのはNSNetServiceですがNSStringでも同様でした。

iOSでは同じコードでちゃんと取得できたのにMacアプリではなにか違うのでしょうか?
よろしくお願いします

//ClientTableView.h
@interface ClientTableView : NSTableView <NSNetServiceDelegate, NSNetServiceBrowserDelegate>
{
NSMutableArray *_services;
}

続く
587名称未設定:2012/05/31(木) 18:37:51.86 ID:s45huoPO0
//ClientTableView.m
#import "ClientTableView.h"
@interface ClientTableView()
@implementation ClientTableView
@end
@property (nonatomic, strong, readwrite) NSMutableArray *services;
@synthesize services = _services;

- (id)initWithCoder:(NSCoder *)coder {
self = [super initWithCoder:coder];
_services = [[NSMutableArray alloc] init];
return self
@end

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
NSUInteger count = [self.services count];
return count;
}

- (void)netServiceBrowser:(NSNetServiceBrowser *)netServiceBrowser didFindService:(NSNetService *)service moreComing:(BOOL)moreComing {

if ([service.name isEqual:self.ownName]) {
self.ownEntry = service;
} else {
[self.services addObject:service];
}
[self reloadData];
}


すいません、sage忘れてました・・・。
588586:2012/05/31(木) 20:39:18.69 ID:s45huoPO0
すいません、上の少し間違ってました

//ClientTableView.m
#import "ClientTableView.h"
@interface ClientTableView()
@property (nonatomic, strong, readwrite) NSMutableArray *services;
@end

@implementation ClientTableView
@synthesize services = _services;
589名称未設定:2012/05/31(木) 20:48:54.97 ID:b5QQfm5E0
_servicesが初期化されてないに一票。
initWithCoderが実行されてるか確認。
590586:2012/05/31(木) 21:07:03.05 ID:s45huoPO0
>>589
レスありがとうございます。
今、確認してみましたけどちゃんと通過していました。。。
591名称未設定:2012/05/31(木) 22:41:19.23 ID:ruv6xClC0
NSLog(@"%@", self.services);
[self.services addObject:service];
NSLog(@"%@", self.services);

とかはしてるのかな。
あと initWithCapacity: 0 を試してみて。
592名称未設定:2012/05/31(木) 23:45:52.06 ID:neUVI3Uy0
>>586
> @interface ClientTableView : NSTableView <NSNetServiceDelegate, NSNetServiceBrowserDelegate>
> { ... }
> ...
> @end
>
> @implementation ClientTableView
> - (id)initWithCoder:(NSCoder *)coder { ... }
> @end
>
> - (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView { ... }
> - (void)netServiceBrowser:(NSNetServiceBrowser *)netServiceBrowser didFindService:(NSNetService *)service moreComing:(BOOL)moreComing { ... }
>

とりあえず、NSTableViewDataSourceは、いったいどこに実装してるの?
593586:2012/06/01(金) 21:18:36.09 ID:dGnGcWQ70
>> 591, 592
レスありがとうございます。

Nibとコードの両方でNSTableViewを作ってたせいでおかしくなっていました。
NSTableViewがUITableViewControllerと同じように動くと勘違いしていたので、
NSTableViewだけを作ってそこで全部動かそうとしていました。

NSViewControllerを作って、その上にNSViewTableを置いて同じように動かすとうまくいきました。

色々とありがとうございましたm(__)m
594名称未設定:2012/06/02(土) 09:58:18.29 ID:27fZsCpgP
まあ、20年前はお手本といわれ、いろんな所からパクられまくったA
ppKitもいろいろ古臭くなって来たな。
595名称未設定:2012/06/02(土) 14:01:53.58 ID:KxKZ5alx0
>>593
なんか、何も理解していませんオーラが出てるなぁ^^

最初、なぜ失敗したのか原因は分かっているのだろうか?
NSTableViewだけを作ってそこで全部動かすのは、十分可能です。

あと、NSTableViewは、UITableView相当だ。
それと、NSViewControllerの前に、NSWindowControllerの使い方をおぼえてくれ。
596名称未設定:2012/06/02(土) 14:24:54.10 ID:YvybuK8F0
iOSだとUIWindowはUIViewのサブクラスになってるからなぁ。
意識しなくてもアプリは作れるし、影が薄いのは確かだ。
597名称未設定:2012/06/02(土) 16:14:30.46 ID:6mtMD/pz0
ようは、そもそも addObject: してなかったってことだろ。
なんで自分でそんなこと気づけないのか謎だが。
598名称未設定:2012/06/02(土) 23:12:59.84 ID:kIqMcdUK0
macでcanvas的なことをやりたいんだけど、quartz 2dを使えばいいの?
hello, worldなチュートリアルがあったら教えてくれ
599名称未設定:2012/06/02(土) 23:26:34.48 ID:6mtMD/pz0
Canvas 的って、こういうのか?
http://hmdt.jp/cocoaProg/AppKit/NSBezierPath/NSBezierPath.html
NSBezierPath は Quatz 2D の CGPath と同等だが。
600名称未設定:2012/06/03(日) 00:20:08.10 ID:dTGQnrEo0
>>598
通常であれば、NSViewのサブクラスを作って、drawRect:をオーバーライドしろ。
という話になるところだけど、もしかして、何か別のものを想像してる?
601名称未設定:2012/06/03(日) 00:28:08.61 ID:38g2KnncP
>>598
最近、ADCのサイトに翻訳ドキュメントが上がった。まあ、以前からMOSAのサイトでも配布しているけど。
ただ、iPhone版なんで座標系に注意な。
602名称未設定:2012/06/03(日) 01:09:57.16 ID:XgDRuaFp0
あれ?
NSStringっていつからリテラル形式で日本語扱えるようになったっけ?
603名称未設定:2012/06/03(日) 01:42:36.75 ID:mMABGcoG0
>>599
おお、ベジェをサポートしているのか

>>600
なるほど!
Canvasクラスみたいなものがあるわけじゃなくて、NSViewにドローイング機能が備わっているのね
まさに知りたい情報でした

>>601
日本語版が出ているんですね、探してみます


みなさんありがとうございます
604名称未設定:2012/06/03(日) 02:04:32.09 ID:zRBGcEy30
> NSViewにドローイング機能が備わっているのね

いや、NSView は Drawable なコンテキストを持ってて、それを表に描写するというか。
605名称未設定:2012/06/03(日) 02:14:53.77 ID:dTGQnrEo0
>>603
なんか、いろいろと、アレな状況ですね^^

Canvasという名のクラスはないけど、NSGraphicsContextクラスがCanvas相当になります。
>604の言うとおり、NSViewにはドローイング機能がありません。
>599が言っていたNSBezierPathクラスなどが、NSGraphicsContextという名のキャンバスに絵を描いてくれます。
NSViewは、NSWindow内でグラフィックを描く領域(キャンバスの一部分)を表しているだけ。
606名称未設定:2012/06/03(日) 02:30:47.68 ID:dTGQnrEo0
>>604
あと、NSViewはDrawable なコンテキスト(NSGraphicsContext)を持っていません。
NSWindowがDrawable なコンテキスト(NSGraphicsContext)を持っています。

たとえ、NSViewにグラフィックを描いたとしても、
ビューではなく、ウインドウにグラフィックを描くという形になるから。
607593:2012/06/03(日) 04:29:03.05 ID:2C5zDG1v0
レス遅くなりすいません。

>> 595
NSWindowControllerの上にNSTableViewをのせるということですか。
何個かサンプル見たけどNSWindowControllerを使ってるのがなかったので重要視してませんでした。ありがとうございます。

>> 596
そうなんですよね。MacアプリはView単位じゃなくて、Window単位なので混乱してました。
正直、iOSでUIViewController使いまくってたので、その上でオブジェクトを管理するのに慣れてしまってますw
608名称未設定:2012/06/03(日) 07:49:14.96 ID:iratjVnT0
>>607
根本的に view と view controller の区別がついてないように見えるんだが…。

Mac の Cocoa ではどんなオブジェクトでも controller になれるから、かえって分かりにくいってのはあるけど、
あえて言うなら iOS の UIViewController に相当するのは NSWindowController だと思うよ。
609名称未設定:2012/06/03(日) 11:14:16.70 ID:38g2KnncP
 NSViewControllerは後付けやしな。レスポンダーチェーンに入れてやるには
手動でつないでやらないと行けない。
 
Macアプリについては、skimとかcot editorとか、それなりの規模のアプリの
ソースコードがネットでGetできるから一度読んだ方がいいと思う。


610名称未設定:2012/06/03(日) 11:30:00.97 ID:iDbojEfR0
>>607
どうやら、View階層というものを理解してないみたいだね。

そもそも、ViewControllerの上にViewが乗ったりはしない。
これは、MacOSXでもiOSでも同じことだ。

ViewとViewControllerは、「関連している」程度の弱い関係しかない。
611名称未設定:2012/06/03(日) 23:14:26.73 ID:lToAnYSj0
そういえばMacでは、NSObjectを継承した自前ControllerでloadNibNamed:やってawakeFromNib:でごにょごにょやって、、
とかやってたな。
612名称未設定:2012/06/03(日) 23:40:30.29 ID:mMABGcoG0
>>604, 606
やってみて理解しました。ドローイング機能を持っている、というより、ドローイングさせる感じですね。

Canvas系のコンポーネントがあって、そのpaintイベントハンドラを継承すればグラフィックコンテキストの取得と描画ができるんだとばかり思っていましたw
グラフィックコンテキストの扱いが、.NETやJava等々と違いますね

>>605
なにせ、Xcodeを初めて起動したので^^;
613名称未設定:2012/06/04(月) 00:26:06.21 ID:SCaRV2yU0
>>612
.NETやJavaを知っているなら話は早い。

NSViewクラスのdrawRect:メソッドが、paintイベントハンドラ相当だと思えばいい。
そして、paintイベントを発生させるのが、setNeedsDisplay:などのメソッドだ。


> グラフィックコンテキストの扱いが、.NETやJava等々と違いますね
実は、大差ない。
C言語のCGContextRefをObjective-C言語でラッパーしたのが、NSGraphicsContextクラス。
NSBezierPathなんかを使った場合でも、内部ではCGContextRefが使用される。
CGContextのリファレンスを見れば、たぶん事情を理解できるだろう。

NSGraphicsContextクラスが持つ、currentContextというプロパティの存在がポイントで、
NSBezierPathなどがグラフィックを描画しようとした際は、内部でその都度currentContextを参照するようになっている。
これにより、ドロー系のメソッドの引数からNSGraphicsContextの指定を省略できるようになっている。

NSGraphicsContextのcurrentContextは、NSViewのdrawRect:が呼び出される直前に、フレームワーク側で自動的に設定される。
614名称未設定:2012/06/04(月) 00:34:05.62 ID:Mmt7YYr20
>>613
そういうことだったんですか!
どういう仕組みでコンテキストを操作しているのか不思議だったんですよね
勉強になりました、ありがとうございます^^
615593:2012/06/04(月) 09:27:24.55 ID:5/+a/osv0
>> 608
>> 610
UIViewControllerやNSWindowControllerがViewを管理するっていう認識でした。
あくまでもViewの管理を示している(集中させる)オブジェクトという位置づけなんですね。

>> 609
ありがとうございます。テンプレのサイトとあわせてもっとソースコード見て勉強します。。

>>611
特にiOSではスタート地点までテンプレでお膳立てされてるので、自前のControllerとか使われてると
「なんでここでViewの管理してんだ?そんな必要あるのか?」ってなってました(^^;;

いろいろと勉強になりました。ありがとうございますm(__)m
616名称未設定:2012/06/04(月) 11:52:00.56 ID:JQXCf9z5P
いつの間にやらiOSのViewController系が便利になっちゃってるんだな…良い意味で統合してもらいたいぜw
617名称未設定:2012/06/04(月) 12:31:31.80 ID:U3rERpDKi
MacOS用で正規表現が標準で使えるのはいくつから?
618名称未設定:2012/06/04(月) 12:44:45.34 ID:ocvP/T570
10.6
619名称未設定:2012/06/04(月) 22:52:59.38 ID:yyWMOi8j0
正直NSCellはいらん。
620名称未設定:2012/06/05(火) 22:55:14.08 ID:dF2rImd7P
>>616
カメレオンといって、UIKitをMacで動かすSDKはあるにはある。
621名称未設定:2012/06/05(火) 23:13:23.47 ID:pIV+U5uq0
MacBookのマイクから音を録るにはどうしたらいい?
Core Audioってのが音を再生する機能を持っているってのは分かったけど、マイクから音を取り込むのがサッパリ分からんです
622名称未設定:2012/06/05(火) 23:35:19.70 ID:sSYeDNmf0
>>621
QTCaptureDevice が QuickTime Player での Recording のベースでしょう。たぶん

https://developer.apple.com/library/mac/#samplecode/MYRecorder/Introduction/Intro.html

どう取り込んでどうするつもりなのかサッパリ分からんですけど
623名称未設定:2012/06/05(火) 23:44:08.26 ID:pIV+U5uq0
>>622
サンプルコードキタ━(゚∀゚)━!
音声編集ソフトを作るつもり
624名称未設定:2012/06/05(火) 23:44:55.52 ID:pIV+U5uq0
書き途中で投稿してしまった

>>622さん、ありがとう!
625名称未設定:2012/06/05(火) 23:46:35.84 ID:+jYTTyKV0
>>621
AudioToolboxのAudio Queue Servicesとかはどう?
626名称未設定:2012/06/05(火) 23:49:27.42 ID:Oqty9y0J0
AudioUnitで再生する方法を知ってるならほとんど同じだよ
入力用のAudioUnit(kAudioUnitSubType_HALOutput)を作り
ユニットの入力側(kAudioUnitScope_Input)をenable,出力側をdisableして
使う入力デバイスのAudioDeviceIDをセットする、という感じ
あとはAudioOutputUnitStartしてコールバックでAudioUnitRenderを呼ぶだけ

まあCoreAudioよりは高レベルなAPI使ったほうが楽かもしれんけどね
627名称未設定:2012/06/05(火) 23:58:42.19 ID:pIV+U5uq0
>>625-626
選択肢がいろいろあるんですね
HALにアクセスとか胸熱だわぁ
628名称未設定:2012/06/06(水) 00:07:02.42 ID:F9bSPeY5P
>>627
今ならAVFoundation使って、iOSとコード共用しないでどーする。
629名称未設定:2012/06/06(水) 00:15:50.49 ID:euZjFHRh0
>>628
また新しいの来たw
cocoa touchはノータッチ なんちて

いやいや、iOSとコード共用するっていう発想は無かったわ
並行して勉強してみるかな
630名称未設定:2012/06/06(水) 00:21:00.18 ID:NDzA9Vf70
iOSでもAudioUnitでやればいいよ。
Mac版のサブセットみたいなもんだから。
631名称未設定:2012/06/06(水) 00:21:33.85 ID:zUyBUik20
AVFoundationとかiOSで動いても10.6ですら動かないゴミはイラネ
632名称未設定:2012/06/06(水) 00:35:14.09 ID:gqkguMHQi
ええ、もう10.6もばっさり切り捨ててですね。
サンドボックス化してですね。AppStoreな訳ですよ。
633名称未設定:2012/06/06(水) 03:01:15.58 ID:AtRaHu9z0
デフォルトの入力デバイスでひたすら録音してALACで保存するサンプル
AudioUnitをつかってる、たぶん10.4以降でうごく
煮るなり焼くなり好きにしてくれ
http://pastebin.com/z3gxM0Eq
634名称未設定:2012/06/06(水) 07:09:08.33 ID:rwP9Qgoli
ComponentMgr使いこなしてる!

...今、10.6と10.7の割合ってどの位なのかな

635名称未設定:2012/06/06(水) 17:09:05.71 ID:d7R01Vyu0
おっさんの余計なお世話かもしれないけど、今から作るなら
QTKit含めQuickTime関係に今から手は出さない方が良いと思うよ。
636名称未設定:2012/06/06(水) 23:41:31.75 ID:euZjFHRh0
>>633
保存しました
助かるー!

>>635
ほぅ
637名称未設定:2012/06/07(木) 00:37:25.04 ID:y3/Qv/9U0
>>636
AV Foundation is the recommended API for all new development involving time-based audiovisual media.
AV Foundation is also recommended for transitioning existing applications that were based on QuickTime or QTKit.
https://developer.apple.com/library/mac/#releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_7.html#//apple_ref/doc/uid/TP40010355-SW5
638名称未設定:2012/06/07(木) 00:52:34.88 ID:fKsoOTg70
>>637
Thx
639名称未設定:2012/06/07(木) 02:01:44.53 ID:iHwI6um90
AudioUnit : C, 10.2以降
Audio Queue Services (AudioToolbox) : C, 10.5以降
QuickTime : C, 64bit不可, iOS不可, 新規開発は非推奨
QTKit : ObjC, 10.5以降, iOS不可, 新規開発は非推奨
AV Foundation : ObjC, 10.7以降
640名称未設定:2012/06/07(木) 09:09:40.50 ID:83aNNoHXi
QTKitもディスコんかあ。
自社のiMovieとかFinalCutとかQTime/QTKitは捨てて、AV基礎で作ってんのかな。
641名称未設定:2012/06/07(木) 09:23:26.18 ID:aMZoAfnG0
>>640
iMovieはAVFoundationにほぼべったり、というかiOSのiMovieの副産物だろ>AVFoundation
CoreMediaとかまだまだ公開されてないところが多いけど時間の問題でしょ
FCPもかなりAVFoundationよりだけど、あっちはかなり難航してる気配があるね。
過去の資産になってるCodecとかが沢山あるので、それらをどうするかが多分問題。
QTに留まる≒64bit化をあきらめる だからね。現在は32bitのサブプロセス上げて、
QT関係は全部そっちに追い出す事で対処してるけど、いつまでその手法に留まるのか。

このへんどうくるのかが来週の楽しみでもある。
642名称未設定:2012/06/07(木) 09:26:28.89 ID:aMZoAfnG0
>>639
FCPとかに手を突っ込んでもいいなら10.6でもAVFoundationが、、
再配布用のライブラリ供給してくれれば、AVFoumdationに以降しやすいと思うんだけどね。

643名称未設定:2012/06/07(木) 12:31:49.22 ID:beWhF+m70
QTKitからAVFoundationへの移行はできてもQuickTimeのReplaceはまだまだ無理
将来的にはもっと高機能になることを期待している
644名称未設定:2012/06/07(木) 16:23:19.99 ID:A1GMiXd4P
>>643
高機能化じゃ無くて低レベルAPIの公開な。Core Mediaは今回出るかもね。
645名称未設定:2012/06/07(木) 17:23:12.06 ID:J09raJl80
メディア関係のAPIたくさん有るねー
中の人も早く統一したいだろうね
646名称未設定:2012/06/07(木) 17:43:33.58 ID:jJVaFttc0
CoreGraphicsぐらい波形が弄りやすいのたのんま
647名称未設定:2012/06/07(木) 23:17:54.11 ID:XoytewulP
 単に動画を再生したり、内蔵カメラを動かすのにiOSでいうMediaPlayer Frameworkレベル
のものがないとつらいと思うが。QTKitで変に高度化した部分を切って整理するんかな?

648名称未設定:2012/06/07(木) 23:39:15.08 ID:lDtWxwS8i
未だ自社製品でさえQuicktimeから脱却出来ないなんて
よっぽど凄かったんだな、QuicktimeFrameworkって奴は。
649名称未設定:2012/06/08(金) 00:20:42.92 ID:iy4qKMNR0
最近まで(QTKitじゃなくて素のQuickTimeが)拡張されてたし

結局QTの利点ってあらゆる機能が網羅的に実装されていること(ただし使いやすいかは別)と
20年ほど蓄積されてきたコード資産があるってことだからね
中途半端なものを濫造しても置き換えは進まない
650名称未設定:2012/06/08(金) 06:58:08.74 ID:Pfz/Hm2g0
QuickTimeは単なるフレームワークじゃないからね。
ComponentManagerを核にしたダイナミックライブラリをを扱う仕組み(これも乱造し過ぎだけど)が
非常に良く出来ていてこの上にいろんなメディア乗せてったからね。
3Dレイヤーとか流行らなかったけどFlashみたいなマルチメディアレイヤー(当時のFlashを変換するcodecとかね)
入力関係のレイヤー等なんでも取り込んだから。
よく、あんなものWindowsに移植したよ。メモリマネージャとファイルマネージャ乗せて、
実質MacOSの互換フレームワークになってる。
あれの64bit化ができなかったのがやっぱり痛いでしょう。中心人物失っちゃったのが、、、

WindowsPhoneに見切り付けて帰ってきてくれると良いんだけど。今度のWWDCの目玉だったりしたら歓喜
651名称未設定:2012/06/08(金) 10:20:41.56 ID:jWSc6GcxP
>>644
いつの間にかハードウェアサポートのサンプルコードが出てた。なんと10.7用。

CoreMediaIO
https://developer.apple.com/library/mac/#samplecode/CoreMediaIO/Introduction/Intro.html#//apple_ref/doc/uid/DTS40012293

The CoreMediaIO Device Abstraction Layer (DAL) is analogous to CoreAudio’s Hardware Abstraction Layer (HAL).
Just as the HAL deals with audio streams from audio hardware, the DAL handles video (and muxed) streams from video devices.
This SDK will demonstrate how to create a user-level DAL plugIn, a user-level “assistant” server process that allows the device to
vend its video data to several processes at once, and a kernel extension (KEXT) for manipulating the device’s hardware.
652名称未設定:2012/06/08(金) 10:53:00.56 ID:F60g/Be30
>>644
そこは分かってる。低レベルAPIの公開=俺にとっては高機能化だと勝手に脳内変換してただけ。
これからもっと細かいとこいじれるようになるといいなってことで。
Mountain Lionで載って来るものはだいたい見えたからまたその次にも期待している。
653名称未設定:2012/06/08(金) 10:56:03.94 ID:Pfz/Hm2g0
>>652
ともあれ、独自コーデックの追加ができないとつらいよね。
654名称未設定:2012/06/09(土) 00:05:55.60 ID:dZNjhLnN0
>>653
独自コーデックって?
655名称未設定:2012/06/09(土) 10:06:17.32 ID:s/Y1v2En0
独自というか外部コーデックじゃないのかな? perianみたいな奴
ここ見てQTKitをAVFoundationに移行しようと思ってテストアプリ書いて遊んでたんだけど
aviすら再生できないので無理だというのが分かっただけだった
iOSのをそのまま持ってきただけなのね
CALayerベースってのが面白そうだったんだけど当分ダメだね
656名称未設定:2012/06/09(土) 13:31:59.43 ID:5NZ0Cdrs0
>>654
独自コーデックだろ。開発側からしたら。
まあ、他社が作ったコーデックを使う開発もあるだろうけど、その他社にとっては独自。
たとえば、H.264の高速化支援をしようとしてもそれがQTXには追加できない。
657名称未設定:2012/06/09(土) 14:09:11.42 ID:OSatIxrhP
 スレッドは急に止まれないを地で行っている嫌なフレームワークだ。FCPが嵌っている
のもこの辺りが原因かな?

658名称未設定:2012/06/10(日) 13:46:33.04 ID:rOaeR8q+0
>>656
高速化支援は、独自コーデックの追加なのか?
659名称未設定:2012/06/10(日) 15:28:35.37 ID:XppLMUK+i
x264とか、mkv importerとか、それなりに
需要があるのに、開放されないのかな。
660名称未設定:2012/06/18(月) 02:03:00.11 ID:2afsCis80
ハァーさっぱりさっぱり
661名称未設定:2012/06/22(金) 09:42:55.92 ID:54xXFM7o0
7月の日付の入ったドキュメントが公開されるとか、、、
662名称未設定:2012/06/22(金) 12:29:11.92 ID:vGv9W3KD0
Rivision Historyを見ると単に日付間違いみたいだね
663名称未設定:2012/07/19(木) 14:18:41.76 ID:Z414tjxa0
WebKitをタブブラウザ化して使うのにPSMTabBarControl使ってるんですけど
これを64bitでARC対応にしようとするとコンパイラを通らないんですが
いい方法はないでしょうか?
664名称未設定:2012/07/19(木) 14:27:19.62 ID:j1PRXhKs0
>>663
GitHubでForkして通るように直してPull Requestを投げる
665名称未設定:2012/08/21(火) 00:33:59.75 ID:AQB2RSK20
今更ながらOSX10.3での話なんだけど、ダイアログなんかで文字列表示する場合、
改行コードってなんて指定したらいい?
10.6とかだと ¥r で改行されるんだけど、10.3では駄目みたい…
666名称未設定:2012/08/21(火) 00:35:01.61 ID:AQB2RSK20
え、円マークになってるけど、"バックスラッシュ+r" ね、10.6は。
667名称未設定:2012/08/21(火) 00:41:38.53 ID:/T3ofzMF0
普通 \n だろ……
668名称未設定:2012/08/21(火) 01:51:14.68 ID:AQB2RSK20
ごめん、徹夜で脳停止してたわ
669名称未設定:2012/09/08(土) 09:51:01.12 ID:8kAewY/O0
毎時きっかりに走らせたいメソッドがあるんだけど
「毎時きっかり」を知るいい方法ってある?
670名称未設定:2012/09/08(土) 12:13:14.09 ID:kBBumChY0
>>669
現在時刻と走らせたい時刻の差でタイマー予約するのが普通と思うけど、
もっと精度要るの?
671名称未設定:2012/09/08(土) 12:16:13.14 ID:Rm4+I9le0
>>669
launchdを使う。
672669:2012/09/08(土) 13:34:00.02 ID:8kAewY/O0
>>670
フレームワークで用意されてないかなと思って
あとスリープされたときどうしたらいいかわからん
673名称未設定:2012/09/08(土) 15:40:24.53 ID:kBBumChY0
>>672
スリープ解除はスリープするときにパワーマネージャにお願いして起こしてもらうんだよ、たしか。
IOPMSchedulePowerEvent() とか。
パワーマネージャは権限とかあってややこしいんだよね。
674669:2012/09/08(土) 16:31:05.30 ID:8kAewY/O0
スリープ解除はこうすればいいのかな

[[[NSWorkspace sharedWorkspace] notificationCenter] addObserverForName: NSWorkspaceDidWakeNotification
object: nil
queue: [NSOperationQueue mainQueue]
usingBlock: ^( NSNotification * aNotification )
{
[self タイマーセットし直し];
}];
675669:2012/09/08(土) 16:33:12.87 ID:8kAewY/O0
ダメか
スリープ前に動かしたタイマーの止め方がわからん
676名称未設定:2012/09/10(月) 09:59:25.41 ID:8D6POO5t0
>>675
状況がわからないのだけれど、timerをinvalidateしてもtimerが無効にならないのだろうか?

私は、NSWorkspaceDidWakeNotificationを受けて
[self.timer setFireDate:予定date];
で動かしていますが、これではダメですか?
677名称未設定:2012/09/13(木) 17:30:43.42 ID:/JqKs62yP
新しいiTunesの画面みたけど中央上のボックスがタイトルバーに食い込んでる。
今時のcocoaだと簡単に出来るのかい?
678名称未設定:2012/09/13(木) 20:39:41.68 ID:wfoMLNnb0
>>677
それって、もしかしてNSWindowにNSWindowを重ねてるだけなのでは?
それなら、昔のCocoaでもできるよ。
ユーティリティのグラブで、ウインドウのスクリーンショットを撮れば確認できる。
679名称未設定:2012/09/13(木) 20:45:24.86 ID:/JqKs62yP
ええっ(笑)
そんな力技で本家がアプリを作るかなあ(笑)
確かにウインドウ上部のマウスオーバーで
タイトルバーが出てくるアプリもあるけど、その変形かな。
680名称未設定:2012/09/13(木) 21:38:36.66 ID:wfoMLNnb0
>>679
Xcode4がそういう作りだったはずだよ。
グラブでXcodeウインドウのスクリーンショットを撮ると、
本当に選択したNSWiindowだけしか写らないので、タイトルバー直下の情報パネル(?)が消えちゃうんだよね。

で、いまグラブでもう一度試してみたら、全部写るようになっていた^^;;
グラブがアップグレードしたせいだろうか
681名称未設定:2012/09/13(木) 21:50:05.26 ID:wnhqBQ970
>>677
ノッペラボウのwindowの中に全部自分で描いてるんでしょ。
スクロールバーとかも独自のデザインだし。クロスプラットフォームの
アプリケーションではよくある手法。
682名称未設定:2012/09/23(日) 18:04:36.36 ID:5KSuwKJw0
web上にあるフォームにプログラム側からブラウザを経由せずPOSTしたい(この言い回しは合っているのだろうか)のですけどどうすればよいのでしょうか。
プログラム側で受け取ったユーザー名とパスワードを使ってサービスにログインしたいのです。
WebViewのインスタンスをつくって(表示はしない)、コイツからjavascriptをどうこうすればどうにかなるのでは、と思ったのですがどうもよく分からず。
683名称未設定:2012/09/23(日) 18:37:49.09 ID:pA04WMx1P
ぶっちゃけNSURLConnectionとかでPOSTするとか。
684名称未設定:2012/09/23(日) 23:51:49.06 ID:KYXBGiyU0
自分でHTTPリクエスト作って送信。ASIHTTPRequestとかAFNetworkingとか便利なライブラリがある。

parosなんかでキャプチャすればPOST内容分かるからそれ参考に。
685名称未設定:2012/09/24(月) 22:18:31.77 ID:4UM88Jv80
>>683,684
方針ありがとうございます、試してみますです。
686名称未設定:2012/09/26(水) 19:37:02.45 ID:7Cn3q3o90
TextFieldの文字をURLエンコードしてサーバーにPOSTしたデーターがOS10.8だけ文字化けする
10.6や10.7では問題無いのに、なんでや・・・

687名称未設定:2012/09/26(水) 23:38:35.42 ID:ZCkF6+be0
>>686
エンコードが正常に動かないのか、POSTが正常にされないのかわからないから誰も答えられない。
688名称未設定:2012/09/28(金) 01:36:00.37 ID:un4K8jNA0
>>687
大変失礼いたしました。
わたくし、取り乱してしまいました。

どうやらエンコードが正常に動いていないようです。
NSString *encodeString = ( NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)str,
NULL,
CFSTR("!*'();:@&=+$,/?%#[]"),
kCFStringEncodingEUC_JP);

ECU_JPのエンコード文字が欲しいのに、勝手にUTF8にエンコードした文字を返してきます。
でも毎回では無くて、画像をPOSTした後の日本語をPOSTする際のエンコードの時だけUTF8で返してきます。
OS10.6や10.7では問題なくて、10.8だけなんです。
UTF8でのエンコードなんて一切指定していないのに、なんでだろ・・・
689名称未設定:2012/09/28(金) 22:27:43.88 ID:MDrhHqY/0
>>688
エンコードがうまくいかないと考えるなら、
元の文字列のバイナリダンプとエンコード後のデータのバイナリダンプを
10.7でやった場合と10.8でやった場合を晒してみると良い。
1文字でも良いけど、2、3文字のが判りやすいかな?
690名称未設定:2012/10/27(土) 23:47:20.55 ID:PybJcGH50
Objective-c癖が強いなあ・・・。
しかも頑張って覚えても潰しがきかないから心が折れる・・・。
でもOSXでアプリ作るにはこれかJavaくらいしかないんだよねえ・・・。
頑張るか。
691名称未設定:2012/10/28(日) 00:07:31.01 ID:kpXsuku+0
>>690
Javaはもうないと思うけど。

Javaがありなら、なんでもありじゃない?
デフォルトで実行できない言語環境
X codeでサポートされてないし
692名称未設定:2012/10/28(日) 00:30:28.64 ID:6lJovKHs0
CocoaのJavaブリッジは大分前に廃止された
693名称未設定:2012/10/28(日) 00:35:59.79 ID:dAyu9oVpP
 潰しが効く言語というが、かつてのFortran/Cみたいなかんじで使われるのって
ほとんどないと思うけど。それに今はAPIやフレームワークの学習にコストがかか
るし。Javaにしたって、Androidとサーバーサイドじゃ全然違うし。

694名称未設定:2012/10/28(日) 00:50:03.35 ID:6PC1VKuKP
objective-cから入ってJavaはすごく楽だったよ。
695名称未設定:2012/10/28(日) 00:54:16.82 ID:9qa+iJT10
Javaはobjcとcppのいいところ取りしたようないい言語だよね
実行環境があれだけど
696名称未設定:2012/10/28(日) 10:50:27.69 ID:VDMebeVC0
プラットフォームの変化が激しいからねぇ
いちばん潰しがきくのはCOBOLだろ
(使ってる会社に入るのが超絶狭き門だが。銀行系とか)
697名称未設定:2012/10/28(日) 10:52:51.72 ID:lR3J5bZm0
うーん。ごめんなさい。
つぶしが利かない・・・の使い方が間違っていた。
>>695が言うとおり実行環境がないのが嫌くらいの意味でした。

結局会社ではWindows使わないといけないんだけど、
WindowsにはObjective-cの実行環境がないから
覚えてもなあ・・・って。

リファレンスもサンプルも充実してるし、
何よりMacでアプリ作りたいから頑張ります。
RSSリーダ、作りたいんだよね。無料の。
698名称未設定:2012/10/28(日) 12:12:18.01 ID:hLYwRwF90
rssリーダにはたくさん競合がいるけど頑張れ。
たくさんの人に使ってほしいと思うより、
まずは自分の欲しいものを作るのが一番良い。
699名称未設定:2012/10/29(月) 00:52:53.43 ID:HUeO62l30
Twitter全盛のこのご時世、RSSはオワコンだろ。
700名称未設定:2012/10/29(月) 01:26:59.48 ID:SabtWMDJ0
お前はRSSを何だと思ってるんだ
701名称未設定:2012/10/29(月) 11:22:28.45 ID:VjntLIBu0
>>697
Windows用にRuntimeもあるし、ビルド環境も作れるよ。
会社で使わせてもらえるかとかパフォーマンス的にどうかとかいうのは別の話だけど。

iTunesとかQuickTimeに(Windows上で)手を突っ込むとさらに色々、、、
702697:2012/10/30(火) 00:19:30.33 ID:i5L3eFk30
>>701
ありがとうございます。
gnustep のことでしょうか?
明日、早速入れてみます。
ログの解析とかにしか使わないので大丈夫かと。

rssは取ってくるだけならできるようになりました。
あとは、UIですね〜♪
一番むずかしいところです。
703名称未設定:2012/10/30(火) 03:07:39.24 ID:KagPPQvl0
ランタイムがあったところでAppleのフレームワークは存在しないだろ
704名称未設定:2012/10/30(火) 05:40:31.30 ID:z68Zs2j/0
GNUStepでなんとかしろとかいう話かね。
705名称未設定:2012/10/31(水) 07:23:28.97 ID:mmVSjR/+P
>>703
Safariとかにも入ってる。
706名称未設定:2012/11/08(木) 11:22:42.16 ID:bJYhtMez0
最近MacのCocoaプログラミングやりたくなったんだけど、
iOSはAppleが公式で色々PDFでドキュメント公開してるけど、
Mac開発向けの資料ってどっかないの?
707名称未設定:2012/11/08(木) 12:29:01.21 ID:GbHtFcRx0
>706
OS X向けのドキュメントもApple公式のが大量に出てるよ。
708名称未設定:2012/11/08(木) 12:32:19.50 ID:etNRaGc00
というか元はそっちだもんな。
709名称未設定:2012/11/11(日) 21:26:10.65 ID:VYVQBcHJ0
Objective-c Programming guideの第5版が出てた。
まだ4版訳すら出てないのに・・・。

諦めて5版の洋書買うかなあ・・・
710名称未設定:2012/11/11(日) 23:57:03.93 ID:VYVQBcHJ0
>>709
ごめん、間違えた。
Programming in Objective-C, 5/e (Developer's Library)
でした。
711名称未設定:2012/11/18(日) 13:51:29.68 ID:txLhMJs10
Core Image Filterを使うとき、パラメータ設定用にIKFilterUIViewを出したりフィルタのデフォルトの状態を
CALayerへ適用することはできるのですが、IKFilterUIViewでの変更がレイヤーに反映されません。
IKFilterUIViewの操作結果のコールバックを受け取るには、どうしたら良いでしょうか?
712名称未設定:2012/11/19(月) 20:33:22.23 ID:2bnvJ8aC0
>>711
バインドでも使うんじゃね?
IKFilterUIViewの中に、NSObjectControllerが用意されてるわけだし。
713名称未設定:2012/11/22(木) 06:16:37.57 ID:jFARjKPR0
OSXのCocoaで
UNICODEエスケープされたUTF8の文字列を
もとに戻す方法を探しているうちに朝がきて泣きそうです。。。

SBJsonってライブラリを見つけたけど
戻せませんでした。

どうやったらいいんでしょうか

OS 10.6.8
Xcode4.0.1
714名称未設定:2012/11/22(木) 10:20:22.75 ID:VI0Qytqh0
NSString unicode escape
でググればあるやん
http://stackoverflow.com/questions/2099349/using-objective-c-cocoa-to-unescape-unicode-characters-ie-u1234
CFStringTransformが好みだな
715名称未設定:2012/11/22(木) 10:23:36.23 ID:e5Zh/r+v0
>>713
CFStringTransform
716名称未設定:2012/11/22(木) 10:24:07.76 ID:e5Zh/r+v0
>>715
あら、かぶってた。
717名称未設定:2012/11/23(金) 03:26:25.25 ID:/6H4KET10
713です
最強のレスあざした
CFとかも勉強してみます

「NSString unicode エスケープ」でググッてました
718名称未設定:2012/11/23(金) 10:08:48.78 ID:wfylLSkcP
CF系ってまだ使えるんだ。
719711:2012/11/23(金) 10:39:58.94 ID:KyLZGd7x0
>>712
なるほど…ありがとうございます。
ちなみに、単純に手動で(IKFilterUIViewを使わず)フィルタのパラメータを更新した時は
どうやってCALayerへ反映するのが普通でしょうか。
720名称未設定:2012/11/23(金) 13:28:31.39 ID:btkclnhf0
>>719
手動でパラメータを更新したなら、そのまま手動でCALayerへ反映すればいいのでは?

それに、NSObjectControllerはIKFilterUIViewとは独立して使用できるので、バインドを使ってもいいし。

おまえが何を作っているのか知らないので、具体的なことは言えないが、
やり方はケースバイケースでいくらでもあると思うぞ。
721名称未設定:2012/11/23(金) 13:50:07.84 ID:wK+q2hdd0
>>718
CFのCはCarbonじゃなくCoreだけど
Coreなんていらんから全てNSに実装してくれればいいのにねえ。ドライバとかは必要かもしれんが
722名称未設定:2012/11/23(金) 13:54:02.90 ID:sIIfqFJAP
 CF系なんて無くしたら、時間制約の厳しい音楽アプリとか、動画アプリとか作れなくなると思うが?
計測すればわかるがメッセージ送信のオーバーヘッドって積もり積もるとあんまり馬鹿にならないぞ?
723名称未設定:2012/11/23(金) 14:05:10.89 ID:wK+q2hdd0
そういう特殊な方面は必要だろうがなあ。それこそそこの部分だけCoreにしとけばええやん
NSのメソッドにありゃ別に無くてもいいっていうのが多いな。だから特にいらないってこと
724名称未設定:2012/11/23(金) 14:19:02.12 ID:btkclnhf0
CFはNSのベースになっているAPIだからね、NSがあるならCFを無くせるわけがないし、無くてもいいという議論にもならないと思う
使わないなら、ただその存在を無視すればいいだけだ
725名称未設定:2012/11/23(金) 14:59:47.82 ID:wK+q2hdd0
うーむ...
単に>>718を受けてのNSだけでもいいよねってだけなんだがなあ

使わないならって、
NSのメソッドにないNSのクラスにあたるCFリファレンスの関数あるからって話しだし(そもそも>>714のstackoverflowのCFStringTransformを薦めている人も言っているでしょ)、
それすら使わないならCFの存在自体わからんからどーでもいい話しで、筋違いの話しのよーな

議論する気なんてねーよ。雑談しているだけだけどな
726名称未設定:2012/11/23(金) 15:27:21.36 ID:btkclnhf0
>>725
「NSだけでもいいよねってだけなんだがなあ」って、NSだけじゃ足りないよねっていう話をしていたはずだろ?

> Coreなんていらんから...(以下略)
> (前略)...だから特にいらないってこと

おまえは、さっきから「CFはいらない」っていう話をしているようにしか聞こえないんだけど
CFに対して何か不満でもあるのか?
727名称未設定:2012/11/23(金) 15:41:07.53 ID:wK+q2hdd0
>>726
なんだかめんどくさいやつだのお

>>718を見てなんでそんなこと言うのかなというと、CFは使っていなくてNSだけでもやってんだろうな。わざわざNSにあるのにCF使うことも無いのが多いからわかるな
にしても>>714なことあるのはなんだかなあってことが凝縮されているんだよw

不満とかwめんどくさいやつ
728名称未設定:2012/11/23(金) 15:44:30.76 ID:0RuYZ3Kh0
なんだこいつID:wK+q2hdd0
729名称未設定:2012/11/23(金) 15:45:00.50 ID:wK+q2hdd0
ああ、不満があるならNSに対してだろうなw
730名称未設定:2012/11/23(金) 15:51:33.00 ID:dZzY98TH0
めんどくさいID:wK+q2hdd0がいると聞いて飛んできました!
731名称未設定:2012/11/23(金) 18:41:01.56 ID:sIIfqFJAP
>>723
その必要な部分だけ抜き出したのがCore Foundationですが。
732名称未設定:2012/11/23(金) 19:01:44.19 ID:wK+q2hdd0
>>731
そうなの?>>724の言っているのと同じ認識だったんだけど
まあ全部比較しているわけじゃないので。そういうことならそうでいいよ

NSにメソッドありゃ別にCFいらんっ(=使わない)てだけで、何を俺が言ったCFいらないってのにムキになってんだかあ。そうか俺はそんなに大物だったのかw
733名称未設定:2012/11/23(金) 19:08:20.60 ID:wK+q2hdd0
>>731
あ、あなたに「ムキに」っていう表現は度がすぎたように思うので、あなた対してというのは取り消します。失礼しました
734名称未設定:2012/11/23(金) 19:12:03.24 ID:Ny2SPikp0
自分の理解できないものは要らんのだろ
735名称未設定:2012/11/23(金) 19:16:28.11 ID:wK+q2hdd0
なるほど、お前はそうなんだろうなw
736名称未設定:2012/11/23(金) 22:35:08.10 ID:CnuebYg30
発狂してる奴が居てワロタ
737名称未設定:2012/11/25(日) 00:34:51.17 ID:OIqTzF9y0
微笑ましいので続けてください
738名称未設定:2012/11/25(日) 22:24:32.07 ID:LFUTqGV50
iOSでアプリリリースできたんでMac用の
プログラミングに挑戦しようと思うんだけど
書籍がほとんどないんだね。
iOSのヒレガス本は自分に合わなくて
必要なとこだけつまんで使ったけどあの本が一番良いのかな
萩原本は自分に合ったので結構読み込んだ。

あとIB使わなくてもなんとかなる?
作りたいのはGUIアプリだけど
739名称未設定:2012/11/25(日) 22:56:31.26 ID:lHRLiW9eP
>>738
HDMT本も役に立つ。ただ、待てるならあと1年ぐらい待った方がいいかもな。
予想だけど、10.9から、UIKitでMacアプリが作れるようになると思う。結構、
噂になってたりする。
740名称未設定:2012/11/25(日) 22:58:57.78 ID:lHRLiW9eP
後、「http://chameleonproject.org」みたいにUIkit互換のフレームワークはあるにはある。
741名称未設定:2012/11/25(日) 23:21:02.92 ID:qrIS3o6O0
IB使わなくてもなんとかなるけどアホな作り方としか思えない。
742名称未設定:2012/11/26(月) 01:05:44.82 ID:DeJ7fIudP
>>732
NSはCF内部で呼んでると思ってた。
743名称未設定:2012/11/26(月) 01:41:39.81 ID:/sTvrBf50
>>739-741
ありがとう。立ち読みしてみる。
UIKitはよく出来てるなーと思ったのでさもありなんだなー

IB使ってる人って複数画面のプロパティとか一括で変えたい時どうしてるの?
自分はGWTからこういうGUIのツールキットに入ったから
anrdoidもWPFも極力コードで済まして
IDEの機能とかマクロとか利用してるんだけども。
XCodeってリファクタリングが若干弱いよね
744名称未設定:2012/11/26(月) 09:36:28.37 ID:NsFpcEmq0
>>743
ちまちまクリクリ変えるか、xibはテキストなので一気に変えられるようだったらそれで
そんな滅多にあることじゃないことを持ち出してリファクタリングがどうとか。初期化コードのごてごてした固まりがないコードの方がよっぽどリファクタリングしやすいと思うけど、それは個人の好みなんだろうな
745名称未設定:2012/11/26(月) 19:40:04.68 ID:+rNOxZ3F0
>>743
> IB使ってる人って複数画面のプロパティとか一括で変えたい時どうしてるの?

そもそもそういう状況にならないなぁ
iOSならまだしも、Macだと「画面の切り替え」がほぼ無いから、複数画面にならない気がする。
746名称未設定:2012/11/26(月) 19:59:05.47 ID:+rNOxZ3F0
>>739
> 予想だけど、10.9から、UIKitでMacアプリが作れるようになると思う。

それは無いだろ。
あるとすれば、「MacにiOSエミュレータが装備される」じゃないのか?

iOS版UIKitとMac版UIKitが別々になると、ユーザー側にも開発者側にもメリット無いしね
747名称未設定:2012/11/26(月) 20:36:48.36 ID:kIFB8Q370
>>739
>結構、
>噂になってたりする。

どこで?
748名称未設定:2012/11/26(月) 23:45:47.08 ID:jBuqIo6/0
nibのアウトレット名もリファクタで書き変わる。
749名称未設定:2012/12/23(日) 20:33:00.31 ID:cTOOVHXR0
ヒレガス本四版
750名称未設定:2012/12/24(月) 10:27:35.90 ID:p5LyVBFG0
NSTableView というか NSScrollView のスクロールが終わって
「止まった瞬間」を検出したんだけど、いい方法ある?
751名称未設定:2012/12/24(月) 14:44:41.14 ID:Q1a7mZ6l0
>>750
NSViewBoundsDidChangeNotificationを利用すれば、スクロールの動きを追跡できるんじゃないか?
ただ最近は、スクロールが終わっても「止まった瞬間」というのが微妙な気がするけどね。
752750:2012/12/24(月) 21:02:37.23 ID:p5LyVBFG0
>>751
NSViewBoundsDidChangeNotification で「スクロール中」はわかるが
「スクロールが止まったとき」はわからん

NSViewBoundsDidChangeNotification で NSTimer 動かして bounds
の変化を見るようにしてるが、もっと賢いやり方を探してる

UIScollView の delegate みたいなのが欲しい
753名称未設定:2012/12/24(月) 22:05:35.69 ID:kfUh3Lsm0
>>752
面倒だけど、
NSScrollView のサブクラスを作って -scrollWheel: をオーバーライド。
引数 NSEvent の -phase や -momentumPhase を見る。
ただしこれらのメソッドはLion以降が必要で、マルチタッチデバイスだけ。
754名称未設定:2012/12/24(月) 23:53:36.57 ID:Q1a7mZ6l0
>>752
慣性スクロールというのがあるわけだが、
そもそも「スクロールが止まった時」というのは、どういう状態のこと?


> NSViewBoundsDidChangeNotification で NSTimer 動かして bounds
> の変化を見るようにしてるが、もっと賢いやり方を探してる

NSViewBoundsDidChangeNotificationの中で、RunLoopにスケジュールしろ。
例えば、最初に既にスケジュールしているものをキャンセルし、
次に、1秒後にあるメソッドをスケジュールする。
そのメソッドが1秒後に呼ばれれば、スクロールは1秒間止まっていたことになる。
755753:2012/12/25(火) 00:23:22.98 ID:vDNRHGKO0
>>753 のコード。

@implementation SomeScrollView

-(void)scrollWheel: (NSEvent *)event
{
[super scrollWheel: event];
if (event.phase == NSEventPhaseNone) {
switch (event.momentumPhase) {
case NSEventPhaseEnded:
NSLog(@"慣性スクロールが終わった");
break;
case NSEventPhaseNone:
NSLog(@"タッチじゃないスクロール");
break;
default:
break;
}
} else if (event.phase == NSEventPhaseEnded) {
NSLog(@"スクロールの指が離れた");
}
}

@end
756名称未設定:2012/12/25(火) 01:03:39.89 ID:aHFwSwd00
ああ、AppKitの方にはDelegateないのか
757名称未設定:2013/01/01(火) 16:13:15.84 ID:1wY99A8pP
アプリからfacebookのウォールへ投稿する機能を追加することになったんだけど、
iOSだとSDKがfacebookからリリースされてんだけど、
Cocoaの場合、そーゆーライブラリ/フレームワークとかってなさそう。10.8にあるSosial.frameworkでもいいんだろうけど、
まだ手元に無いので…。何か良いものご存じないでしょうか。
758名称未設定:2013/01/01(火) 18:59:30.80 ID:PLrtxJ//0
UIも含めてなにもしなくてもいいらくちんだーっUIもそーくーるてのが Sosial.framework/NSSharingService だと思うけど
言っているやりたいことは Facebook API で自分で地道に実装してもたいしたことないと思うけど、言っているようにSosial.frameworkでいいことなので、別に書かなくてもいいことを書くことになるのは否めない
759名称未設定:2013/01/02(水) 04:12:54.76 ID:83/H/ZFj0
日本語でok
760名称未設定:2013/01/02(水) 05:18:34.27 ID:neh5bcEG0
正月で暇だからって素人がここ見ても
761名称未設定:2013/01/04(金) 18:12:51.02 ID:Cak6QmaX0
すいませんiOSで2ch専ブラ作ろうとしてるんですけど
p2.2ch.net経由で2chに書き込むのってプログラム的にはどうやったらいいんでしょうか?
762761:2013/01/05(土) 16:16:33.39 ID:SycJwV380
いろいろ検索していたら CFURLConnection を使えばいいらしいと出てきたんですが
CFURLConnection ってXcodeのドキュメントを検索してもリファレンスが出てこないです
このクラスはiOSからは使えないのでしょうか?
763名称未設定:2013/01/05(土) 17:12:13.88 ID:TxDmEN98P
NSURLConnectionがあるよ。
iOSで使えるのか知らないけれども。
CFなんたらはだいたいNSなんたらがあるよ。
764761:2013/01/05(土) 18:44:21.96 ID:SycJwV380
いやProxy使いたい時はNSURLConnectionじゃなくてCFの方を使えと
出ていたんで使い方を調べていたんですが情報が古いのかなぁ

http://stackoverflow.com/questions/4328048/iphone-proxy-connection/4328098#4328098
765名称未設定:2013/01/07(月) 04:44:28.62 ID:3sGOneBt0
システムグローバルのプロクシ設定じゃなくて、アプリケーション側で設定したければ
CFHTTPMessage/CFReadStream系でやれという話ではなくて?

キーワードはCFHTTPMessageCreateRequest, CFReadStreamCreateForHTTPRequest, kCFStreamPropertyHTTPProxyあたりで
766名称未設定:2013/01/13(日) 16:56:41.48 ID:Y8TtH2JP0
NSTextView 内の選択された範囲のフォントを、コマンド B で太字と普通の文字とで切り替えたいんだけどやり方がわからん

1. 選択されたレンジを取得
2. そのレンジの1文字目の NSFont を取得
3. その NSFont が bold でなければ bold に、bold なら bold でない書体に
4. 選択されたレンジに新しいフォントを設定

てしようと思ってるが、2 と 3 がうまくいかない
767名称未設定:2013/01/13(日) 18:48:48.82 ID:bCSr2d6M0
768766:2013/01/13(日) 22:28:06.14 ID:Y8TtH2JP0
>>767
d 試してみる
769名称未設定:2013/01/14(月) 16:50:03.23 ID:vqszdE2E0
昨日買ったsnowleopardをvirtualboxに入れて初めてXCodeやってみたが、
ネットで4.2の例を見て必死にボタンからソースファイルにコネクトしようと頑張ったが挫折
今日本買ってきてbuilderにobject追加してdelegateインスタンス化しようと必死にやって挫折
よく見るとdelegateインスタンスは最初からあったわw
2日がかりでやっとボタン押したらテキスト表示アプリが出来たは\(^o^)/
XCode3.2って過渡途中の半端な仕様で本も無いしネット情報もないし酷いなぁ
オフィシャルチュートリアルもバージョン違うし…
controllerなら普通に意味分かるけどdelegateってイミフ
クセ強すぎだろ/(^o^)\
770名称未設定:2013/01/14(月) 17:05:49.76 ID:aMB6WCkaP
>>769
今4.5で、4.6βだよ。公式ドキュメントは最新版に合わせるだろJK。
Javaはdelegate使えなくて苦労するが、C#には類似機能があるな。
771名称未設定:2013/01/14(月) 17:52:40.36 ID:Hp/1fPWw0
delegateはobjcだけの概念ではないだろ
772名称未設定:2013/01/14(月) 18:18:09.03 ID:ezRoBMbk0
移譲ってオブジェクト指向の基礎概念だろ……
773名称未設定:2013/01/14(月) 18:27:04.87 ID:vqszdE2E0
素直にViewControllerで良かったじゃん
なんでdelegateなんて言い出したんだよ
774名称未設定:2013/01/14(月) 18:56:24.84 ID:ek3a4sZz0
君がデザインパターンも何も知らないのは判ったよ
まあ、頑張って
775名称未設定:2013/01/14(月) 19:05:15.26 ID:xZAYeSlr0
強く文句言うヤツほど身の程知らずってのが端的だな
776名称未設定:2013/01/14(月) 19:38:28.10 ID:SQBgq7uy0
文句言えるレベルですらない
777名称未設定:2013/01/14(月) 20:54:31.10 ID:yaQCsyLp0
C#のdelegateは、Cocoaフレームワークのdelegateと全然意味違うからなぁ〜
778名称未設定:2013/01/14(月) 21:10:20.43 ID:vqszdE2E0
おしゃれイメージ命のくせにどうして
処理代行屋クラスなんてださい名前にしたのかw
と言ったのだがw
779名称未設定:2013/01/14(月) 21:26:38.40 ID:iHzvlbFw0
何だ、ただの馬鹿か。
780名称未設定:2013/01/15(火) 02:17:44.37 ID:vlWcAjmo0
クラスw
Objective-CだけじゃなくてOOPSを理解していない>>779のいうそのものだったのか
781名称未設定:2013/01/15(火) 06:21:46.56 ID:TZYMLMKe0
delegate を全部 controller にすると、どうなる?
782名称未設定:2013/01/15(火) 10:51:57.30 ID:6DOjo9Eq0
どうなる?
783名称未設定:2013/01/15(火) 18:12:45.16 ID:cVeeYpD20
**delegate.h -> **controller.h
**delegate.m -> **controller.m
784名称未設定:2013/01/15(火) 18:31:30.40 ID:eu/rRm1l0
Proxyパターンの委譲をコントローラにする
Adaptorパターンの委譲をコントローラにする
Facadeパターンの委譲をコントローラにする
...

全く意味が分からんが?
785名称未設定:2013/01/16(水) 00:08:32.33 ID:755F7yNa0
名前がダサいと言ってるだけなのにどうしてこうなったw
代行なんて名前じゃなくて司令部とかにすればよかったのに
786名称未設定:2013/01/16(水) 00:29:36.93 ID:9g1NNCYX0
しるかボケ
787名称未設定:2013/01/16(水) 08:20:18.36 ID:YMCcca510
自分がお馬鹿なのを自覚してないからだな
まだ自覚してねーし。まあ馬鹿だからしょうがないなw
788名称未設定:2013/01/16(水) 09:01:54.32 ID:755F7yNa0
どういう経緯でコントローラが代行屋になったの?
iPhone用がそうなって本家にも波及しちゃったみたいな?
MVCアーキテクチャはMDCになったの?
上から目線のエロいマカの中の人教えてくだしあ
789名称未設定:2013/01/16(水) 10:16:18.55 ID:9T3OT7AC0
エスパーすると
delegateと名付けられた「インスタンス変数」の実態がHogeControllerの「インスタンス」だからHogeController == HogeDelegateと混乱しているのではないか
790名称未設定:2013/01/16(水) 16:13:51.70 ID:YMCcca510
>>788
大笑い。上から目線ってお前に合わせてやったのに、「俺は特別だから俺は上から目線でおけ」なヤツなんだな

本家ってCocoaか?元からあるがな。DelegateはコールバックだけをOOPS的に実現したもの。クラスとして実現しなくてもプロトコル/インターフェースで実現した方が柔軟性があるのはわかるはずなのに
MVCをMDCってwwとことん馬鹿っぽい発言はもうよしたまえ、腹いたいからw
791名称未設定:2013/01/16(水) 18:34:07.59 ID:D53DczyT0
ところで、MDCって何の略?
792名称未設定:2013/01/16(水) 19:34:01.21 ID:mp+idpuE0
この流れ私的に面白いから続けていいよ
793名称未設定:2013/01/16(水) 20:19:34.21 ID:755F7yNa0
>>789そうだよ
XCode3.2より前ではいわゆるユーザ記述部分がHogeControllerになってて
MVCアーキテクチャだと言ってたのに
3.2以降はそこがHogeDelegateって名前になっちゃったのはなんでや?w
と言ってるだけだよ

delegete機構自体のことを言ってるんじゃないよw
794名称未設定:2013/01/16(水) 20:32:42.65 ID:D53DczyT0
>>793
ほんとうになんの話をしているんだ?
Xcode3.2以前も以降も、ControllerがDelegateに名称変更した事実はないだろ。
795名称未設定:2013/01/16(水) 20:35:17.38 ID:9T3OT7AC0
もしかしてAppDelegateのことを言ってるのか……?
796名称未設定:2013/01/16(水) 21:24:43.53 ID:755F7yNa0
古いココア本(非iPhone)のチュートリアルではUIクラスからのデリゲート先クラスを
Controllerとするのがお約束で、モデルビューコントロールアーキテクチャと
いう説明をしてたけど、
3.2から(もっと前から?)、テンプレートプロジェクトを作ると
Controllerの代わりにHogeDelegateが勝手に作られてインスタンス化されてるじゃん
その話だよ
797名称未設定:2013/01/16(水) 21:47:27.42 ID:D53DczyT0
>>796
非iPhoneでUIクラスって、具体的に言うとどのクラスのことだ?
それと、Xcode4.5でテンプレートからプロジェクトを作っても、AppDelegateしか作られないのだが?
798名称未設定:2013/01/16(水) 22:01:11.07 ID:755F7yNa0
>>797古いXCodeではその***AppDelegateが自動で作られず、自分で
***.hと***.mを作って中身を手書きしなきゃならなくて(InterfaceBuilderではobjectを
自分でxibウインドウに追加して***クラスに変更)、
そのクラス名をControllerにするのがどのチュートリアルでもお約束になっていたでしょ

という話だが…
799名称未設定:2013/01/16(水) 22:40:32.98 ID:D53DczyT0
>>798
おいおい、結局そのクラスに"Controller"と名前を付けていたのは、おまえ自身じゃないか!
かつておまえが、NSApplicationのdelegateクラスにどんな名前を付けていたかなんて、俺らが知るわけないだろ
800名称未設定:2013/01/16(水) 23:17:32.48 ID:755F7yNa0
かつても何も、XCode触ったの初めてですが(´・ω・`)
3.2だったので、ネットや本のチュートリアルと違っててつまづいてごるあという話ですわ
801名称未設定:2013/01/16(水) 23:23:17.83 ID:7ItdXVmB0
具体的に、どの本でAppDelegateを** Controllerと名付けてたのさ
802名称未設定:2013/01/16(水) 23:28:14.10 ID:/GRs8MY+0
ID:755F7yNa0 が馬鹿すぎて腹いたいw
Delegateメソッドの実装にここ(Controller)になんて昔から無い。まあ、実装するならControllerだよなってだけだろう。それは今も昔も変わらないのに
803名称未設定:2013/01/16(水) 23:38:49.29 ID:/GRs8MY+0
>>798
なんだ、Delegateの文句言っているのは単にAppDelegateだけのことか??
別にAppControllerでもかまわんぞ。テンプレートが単にそうなっているだけで特に深い意味は無いぞ。たぶん
AppDelegateクラスはDelegateメソッドぐらいしか書かねえ/それぐらいで十二分だろということでAppControllerじゃなくてAppDelegateにしたんじゃねえの

昔はそもそもNSApplicationのサブクラス作ってでやっていたのだがな。まあ、いろいろあるんだよ。柔軟性の無いお前にはとってもいろいろ理解するのが無理っぽいがw
804名称未設定:2013/01/16(水) 23:43:41.81 ID:swV/oMI+0
NSApplicationDelegateプロトコルにconform toしたオブジェクトだから***AppDelegateとして作られてるだけだろ
名前がcontrollerじゃないから気に食わん、というのは理解力と応用力の欠如と言うしかない
805名称未設定:2013/01/16(水) 23:48:32.37 ID:D53DczyT0
Delegateは委譲とか委任とかいう意味だ。

NSApplicationの立場からすれば、delegateは自身の責務を委ねるクラスということになり、
delgateの立場からすれば、NSApplicationの代わってNSApplicationの責務を行うということになる。

つまり、ControllerのdelegateはContorollerだし、ViewのdelegateはViewなのだよ。

NSApplicationクラスは、MVCでいうところのControllerだ。
Controllerに代わってControllerとしての仕事を行うという意味で、NSApplicationのdelegateに"Controller"という名前を付けても何もおかしくはない。
また、NSApplicationのdelegateという意味で、NSApplicationのdelegateに"Delegate"という名前を付けても何もおかしくはない。

結局名前なんてどっちでもいいんだよ。
名前の付け方によってMVCパターンが変化するとかいう話にはならない。
806名称未設定:2013/01/16(水) 23:56:09.24 ID:FuqIngbvP
>>800
去年のくれにXCode4に対応した本が出たから買いなさい。
807名称未設定:2013/01/16(水) 23:57:33.64 ID:755F7yNa0
808名称未設定:2013/01/17(木) 00:10:59.20 ID:TrpOP2nF0
OOPもデザインパターンも解ってないし、学ぶ気もないんだからサンプル
動かして喜んでれば良いだろ。暫くすれば飽きて終了。
809名称未設定:2013/01/17(木) 00:16:46.18 ID:r/P3z4/e0
>>807
その Controller、全然 delegate と関係してないね。

終止お前の妄想じゃん。
810名称未設定:2013/01/17(木) 00:18:19.55 ID:c6ABWC9I0
>>807
えらく古いものを出すものだな。それは Xcode 2.X のだろう
お前の大好きなDelegateもその頃にはProtocolにもなっていなかったんじゃないかなあ
頭の固いお前にはそれを変換して今に置き換えるのは無理だから、おとなしく>>806の言うことに従いなさい
811名称未設定:2013/01/17(木) 00:27:26.96 ID:QpZxrHmL0
書き込むたびにIDの変わってしまう環境の奴だらけだなw
812名称未設定:2013/01/17(木) 00:30:11.05 ID:c6ABWC9I0
日付変わったらID変わってしまうのはうちだけだったのかw
813名称未設定:2013/01/17(木) 00:33:38.32 ID:c6ABWC9I0
いや、違う。日付変わったらID変わらないヤツもいるってことか。>>811の言いたいのは
>>811自体が初なのに気づかない自分を知らないヤツってどっかにいたなw
814名称未設定:2013/01/17(木) 00:38:40.83 ID:i/XoPzyj0
>>806
>>810
それよりも、「10.8にアップグレードしてXcode4.5をインストールしろ」と言う方が先だろ。
ID:755F7yNa0 == 769だぞ、きっと。
815名称未設定:2013/01/17(木) 00:46:04.92 ID:c6ABWC9I0
>>814
>ID:755F7yNa0 == 769だぞ、きっと
いや、ずっとそのつもりだったけどw

Xcode 4.2 と Xcode 4.5 ってそんなに違ったけ?
まあ別に本買ってから新しすぎて10.8にアップグレードしてXcode4.5をインストールにしなきゃならなくなるでもいいんじゃないのとも思うけど
816名称未設定:2013/01/17(木) 00:50:53.12 ID:H3meJoep0
>>769はXcode3.2だよ
817名称未設定:2013/01/17(木) 00:55:52.18 ID:c6ABWC9I0
なるほど。なんで
>XCode3.2って過渡途中の半端な仕様で本も無いしネット情報もないし
とまで言っているのに、Xcode 4.2 じゃないんだろうな。馬鹿の底は計り知れないw
てか>>769をちゃんと読むとわけがわからないのが散りばめられていて、やっぱり馬鹿の底は計り知れないと改めて思うのだった
818名称未設定:2013/01/17(木) 01:01:43.80 ID:qMktlpMz0
developer.apple.comにXcode4.2はfor lionしかないね
819名称未設定:2013/01/17(木) 01:03:22.81 ID:c6ABWC9I0
ああ、そっか。そういえばそうだったねえ。ども&すまんかった
820名称未設定:2013/01/17(木) 01:11:07.05 ID:c6ABWC9I0
http://mac.hitobashira.org/up/src/maka0659.png
これって??まあ、いいや。とりあえずってことで。いろいろといいかげんw
821名称未設定:2013/01/17(木) 01:16:32.21 ID:qMktlpMz0
>>820有料会員ですか
822名称未設定:2013/01/18(金) 16:27:19.94 ID:DgeOZpnn0
あー確かに古いサンプルで
@interface AppController : NSObject <NSApplicationDelegate>
って書いてる奴読んだ事あるわ
それでdelegateとControllerの概念がごっちゃになっちゃったんだな
823名称未設定:2013/01/18(金) 20:15:11.71 ID:DbcByUZl0
ごっちゃになってないって
てゆーか初めて触って最初のサンプルやってたんだからそんな概念無かったわw
単に、最初に触ったXcodeが3.2で、4.2の例見てやったらボタンから
ソースコードに線が繋げなくて仕方なく古い例見たらみんなAppdelegeteじゃなくて
controllerになってたからなんじゃこりゃと思っただけだよ
Appleのチュートリアルでcontrollerと言ってたものをdelegete自動生成になってたから
考え方変わったのか?と思うじゃん何も知らないんだから。

実はdelegeteだらけだってことなんかまだ知らなかったから
824名称未設定:2013/01/18(金) 21:08:17.35 ID:XvSWasPV0
どんなファイル構成になってるか見せてほしい
825名称未設定:2013/01/18(金) 22:47:44.60 ID:Oq9qh/neP
とりあえずまだ把握できてない自覚があるなら
その時点で文句を言い始めるのはやめたほうがいいな
826名称未設定:2013/01/18(金) 23:45:20.40 ID:F2hhrViZ0
>>825
まさに、そのとおりだな
827名称未設定:2013/01/23(水) 13:31:23.71 ID:8WVg5np90
Cocoa で2chブラウザを作るとしたらMVC のモデルレイヤーをどのような設計にしますか?
828名称未設定:2013/01/23(水) 13:55:13.61 ID:Qg+7kC4P0
必要な粒度でモデリングを行うのが設計というものです
829名称未設定:2013/01/23(水) 14:09:04.68 ID:lSznIjKxP
モデル: AAを保存する
ビュー: AAを表示する
コント: AAを崩さずに補正する
830名称未設定:2013/01/23(水) 14:28:24.72 ID:8WVg5np90
板オブジェクトにスレッド一覧プロパティがある場合
板を生成した時に2chから、スレッド一覧を取得してパースするような設計だと
板を生成するのに時間がかかるので非同期な設計の方がいいと思うんです?
非同期だとblock, delegate, notification, KVOなどを使うんでしょうか?

そもそもネットワークのコードは別なオブジェクトが担当すべきなんでしょうか?
831名称未設定:2013/01/23(水) 14:34:27.15 ID:8WVg5np90
>>829
コントローラーが補正していいんですか?
ビューが補正した方がいいような気がするんですけど
コントローラーがそーゆーのも担当すべきなんですね。
832名称未設定:2013/01/23(水) 15:45:31.17 ID:r/BDrmf40
補正していいかどうかはお前が決める事
コントローラは例えばAA補正ボタンがあったとしたらその入力を受け取ってAAビューに伝えるような役割を担当する
833名称未設定:2013/01/23(水) 16:30:15.31 ID:lSznIjKxP
M : 自分は答えを出さずに他人に質問しておいて
V : 他人の答えに疑問を返すようなやりとりは
C : 人としての信用をなくすので注意
834名称未設定:2013/01/23(水) 16:43:27.81 ID:S23FX8cmP
自分もオブジェクト指向設計・開発の書籍を読んだりして実装をしてみたけれど
正解が無いという気がするんだよな。クラス図やシーケンス図を描いたりしても
他人と設計を共有するなら便利だけど自分用には単なるメモって程度で。
MVCと細かく分けるのも、再利用性や拡張性を踏まえればやるべきなんだろうけど
さっきも書いたように正解が無い世界だから、他の人とプロジェクトを共有することが無ければ
試行錯誤でやってみた方が良いと思うよ。場数踏んで他人の(上手な)コード読むのが一番だとおもう
835名称未設定:2013/01/23(水) 19:46:29.78 ID:k1HGdiC10
>>830
ユーザーインタフェース以外のコードは全部Modelに書く。
MVCパターンの詳細については、POSA本でも読んでくれ。
836名称未設定:2013/01/23(水) 21:21:18.97 ID:oU+olx8zP
>>830

 ネットワークのコードはモデルコントローラにする。UIには依存しないが、ネッワークの
受信には反応する。板やスレッドのデータそのものはモデル(Core Data等)になる。

 iOSだけどオートマ本は読んだ方がいいな。Macの場合も同じやし。
837名称未設定:2013/01/23(水) 21:24:23.02 ID:oU+olx8zP
ネットワーク周りをどう実装するか?については、iOSアプリ 個人開発者の雑談スレ8の
スレッド300あたりで同じ議論をやっている。
838名称未設定:2013/01/23(水) 21:33:14.37 ID:k1HGdiC10
>>836
モデルコントローラって何?
839名称未設定:2013/01/23(水) 21:41:34.22 ID:oU+olx8zP
>>838
UI操作以外のイベントを受けたり、アクションを実行するコントローラクラス
モデルには依存するがビューには依存しない。なんで、ビューコントローラクラ
ス内からいつでも呼べる。
840名称未設定:2013/01/23(水) 21:47:03.59 ID:oU+olx8zP
 どうレイヤーを分けて、どのレベルでどう使い回すか?を考えないと、MVCの本を
何回、何十回読んでも理解できないと思う。 
841名称未設定:2013/01/23(水) 22:07:49.48 ID:k1HGdiC10
>>839
なんというか、話の内容がよく分らないのだが(^^;;
とりあえず、それはMVCパターンとは別の話なんだよね?
842名称未設定:2013/01/23(水) 22:23:31.87 ID:oU+olx8zP
 パターン、パターンっていうが、オブジェクト指向設計(=ソフトウェア設計)って、
如何にクラスに責任を割り振るか?を解決していくもんだけど。
843名称未設定:2013/01/23(水) 22:41:55.03 ID:k1HGdiC10
MVCパターンに限らず○○パターンと呼ばれるものは、たいてい「設計の再利用」を意味している。
その「如何にクラスに責任を割り振るか?」について設計・検討していくときに、
「MVCパターンを使う」ということにすれば、少しだけ設計の手間が省けるんだよ。

ちなみに、MVCパターンはネットワーク・プログラムの設計とは全く関係ない。(まあ、ユーザーがネットワーク越しにいるとかなら話は別だが)
827も最初からそれが分っていて、質問の内容は「モデルの中にどう書くか」となっている。
ついうっかり「MVC」という言葉を出したのが変な火種になったな。
844名称未設定:2013/01/23(水) 22:59:21.61 ID:oU+olx8zP
 モデルコントローラという言い方がまずかったかもしれんが、エンジンやね。
音楽プレイヤーとかTwitterのフロントエンドとか。

 結果は大抵何頭のコールバックで受けるんでそこで依存しているもの(他のモデ
ルだったり、ビューだったりする)を変更する。あるいはエンジンの中で直接モデ
ルを更新する。
 
 モデル自体は、データの制約関係の知識をもつだけで、入力方法(ネットワーク
、手入力)については知る必要がないというか、知るとは設計が複雑になるので、分
離して上位レイヤーとして実現すべきやね。
845名称未設定:2013/01/24(木) 00:42:28.66 ID:tR4l6fv50
>>832, >>833, >>834, >>835, >>836
皆さんいろいろと質問に答えてくれて、ありがとうございました。

>>832
AAビューが補正ロジックを持つんでしょうか?
AA補正ボタンがTarget であるコントローラーへとAction messageを送り
Action method でAAビューにAAを補正するように伝えるんでしょうか?

>>833
失礼な対応をしてごめんなさい。

>>834
そうですね、まずはJD for Linuxのコードを読んでいろいろと試行錯誤してみます。

>>835
POSA Volume 1 のMVC とCocoa のMVC は違うと思うんですけど?
ttps://developer.apple.com/library/mac/#documentation/cocoa/conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html#//apple_ref/doc/uid/TP40002974-CH6-SW22
846名称未設定:2013/01/24(木) 08:57:04.15 ID:ZfqyVz2T0
>>845
だからそこはお前が決めろって言ってるだろw
俺だったらAAビューに持たせるかな
847名称未設定:2013/01/24(木) 09:16:54.77 ID:TNlmA7+VP
相変わらずMVCの話になると盛り上がるねえ(笑)
848名称未設定:2013/01/24(木) 11:21:49.18 ID:z9GI5zIDP
答えの無い世界だからねぇ。いやそこはこうすべきだろ、いやいやおまえの考えは違っている、って二言目には人格否定に入るから荒れやすいのなんの。
J2EE使った決済システムの開発で、コードを書かない設計した人とコード書くPGとで
見解の違いで言い争いが始まって、
ホワイトボード真っ黒になるまでUML関連図描きまくってたの思い出したよ。
要求仕様通りにちゃんと動いているんだけどね(笑
849名称未設定:2013/01/24(木) 13:48:07.44 ID:rjjq6YGM0
それ言ったらこんどは「プログラムは動けばいい」勢がくるぞー
850名称未設定:2013/01/24(木) 17:28:59.60 ID:ZfqyVz2T0
こういうキモいコードを書かなければおk

-(void)viewDidLoad
{
[super viewDidLoad];

_aaviewManager = [[AAViewManager alloc] initWithTarget:self];
[_aaviewManager addAAView];
}

-(IBAction)aaViewAction
{
[_aaviewManager setAAFrame:CGRectMake(0,0,320,200)];
}

実際こんなコード書いてる奴いるからな・・・発狂しないで悔い改めるように
851名称未設定:2013/01/24(木) 18:02:09.48 ID:TNlmA7+VP
えっ!?
852名称未設定:2013/01/24(木) 20:35:25.13 ID:NZkz+IIl0
_aaviewManager が AAView を管理しているなら、CGRectMake(0,0,320,200) なんて隠しているハズのを直接さわる/さわれるようにしてんじゃネーよてことかなあ
853名称未設定:2013/01/24(木) 21:33:52.62 ID:oV474Y3J0
-viewDidLoadがあるということは、このクラスはViewControllerなのだろう。
そして、AAViewManagerはselfつまりViewControllerによって初期化され、
おそらく、addAAViewの中でviewController.viewのサブビューにAAViewを追加している。

ようするに、AAViewManagerはViewControllerの影武者ということか。
854名称未設定:2013/01/25(金) 01:08:11.08 ID:5CZguFF80
どうしてNSFileないの?
例えば、ファイルのサイズを取得するのにfile.size じゃなくて
[fileURL resourceValuesForKeys:keys error:NULL][NSURLFileSizeKey]ってするけど
この方がいろいろ都合がいいの?
855名称未設定:2013/01/25(金) 01:25:42.47 ID:NI36HJSU0
NSFileHandle
856名称未設定:2013/01/25(金) 12:00:07.25 ID:5CZguFF80
NSFileHandle だとメタデータを読めないよ (;´Д`A
857名称未設定:2013/01/25(金) 12:10:05.67 ID:DqzdLj8q0
満足できるクラスがないんだったら自分で作ればいいのに
858名称未設定:2013/01/25(金) 16:10:42.38 ID:5CZguFF80
ttp://arstechnica.com/apple/2009/08/mac-os-x-10-6/7/
ファイルシステム使うの、昔は大変だったんだね ε=ε=ε=ε=ε=ε=┌(; ̄◇ ̄)┘
859名称未設定:2013/01/25(金) 16:22:29.94 ID:lT7HXgwb0
NSFileManger
860名称未設定:2013/01/25(金) 16:37:20.79 ID:5CZguFF80
シラクーサがNSURL 使えって書いてんだろ ((((;゚Д゚)))))))
861名称未設定:2013/01/25(金) 16:40:02.24 ID:lT7HXgwb0
Apple Event使ってFinderに聞く
862名称未設定:2013/01/25(金) 19:45:09.87 ID:3WvEdm6Y0
最近はローカルファイルのアクセスにも、filepathの代わりにurl使うようになって来ているからね。
ローカルとネットワークの垣根を取り去る方向で、APIが変化してきているということなんじゃないか?
863名称未設定:2013/01/25(金) 19:56:35.58 ID:dR3tazgX0
xattrへのアクセスはURLベースのAPIじゃできないでしょ。
OSXは色んな流儀の寄せ集めなんだから、基本適材適所だよ。
864名称未設定:2013/01/25(金) 22:38:02.17 ID:PUHwIo4W0
ぱちぱち ぱちぱち
865名称未設定:2013/01/26(土) 05:19:07.94 ID:hGA1ES9q0
>>859

NSFileマン毛R
866名称未設定:2013/01/26(土) 14:48:16.45 ID:lXMZujbU0
こういうのって純粋に面白いと思っているのか、バカらしくて面白いを狙っているのかどっちなのか興味深い。面白くもなんともなくただそれだけだが
867名称未設定:2013/01/26(土) 16:28:55.97 ID:JkjzfRFa0
Cocoa のメソッドが何をしてるか知りたい時どのように調べますか?
例えばNSString のlength が何をしているか知りたいと思っても、残念ながらapple はコードを公開していないので
コードを見て調べることはできません。

そこで最初に思いついたのは、Instrument でトレースしてみたりNSObjCMessageLoggingEnabled をYES にしたり、
LLDB ならブレークポイントに正規表現を使えるので、それを使いスタックトレースを出力して見たんですけど、
皆さんはどのようにして調べていますか?
868名称未設定:2013/01/26(土) 16:33:48.03 ID:ZwM/ZDKP0
逆汗
869名称未設定:2013/01/26(土) 16:36:18.23 ID:CNWRM8RK0
GNUStepのコードを読む
870名称未設定:2013/01/26(土) 22:32:34.92 ID:t04jTjyWP
NSStringならCFStringのコードを読めばいいんじゃない?
871名称未設定:2013/01/27(日) 00:09:09.50 ID:SVXS40j50
>>867
とりあえずリファレンスを信用するなぁ
.netと違って仕様に関してはまともに文書化してる感があるから
872名称未設定:2013/01/27(日) 01:25:12.42 ID:pwnoQZ4b0
そういう話じゃなくて実装が知りたいってだけじゃないの?
873名称未設定:2013/01/27(日) 02:28:03.81 ID:EEuq+nXu0
>>867
それで、実装知ってどうするつもり?
「例えばNSString のlength が」とか言ってるけど、実際に知りたいことって何なの?
質問が遠回し過ぎる気がする
874名称未設定:2013/01/27(日) 05:19:28.85 ID:elkrMLlo0
アスペくせーw
875名称未設定:2013/01/27(日) 10:51:35.05 ID:HZreT/xE0
CoreFoundationってソース公開してるの?
876名称未設定:2013/01/27(日) 11:04:55.60 ID:9Bh68Cu5P
>>875
してる。
877名称未設定:2013/01/27(日) 12:42:05.43 ID:eBstYvu70
ファイルマネージャは老舗旅館みたいになってるからな。

今は、基本的にはこれで全部足りるんじゃね?
https://developer.apple.com/library/mac/#documentation/FileManagement/Conceptual/FileSystemProgrammingGUide/

あとは最近ドキュメントが追加されたiCloud周りのNSFileManagerクラスの拡張ぐらい?
878名称未設定:2013/01/27(日) 13:23:20.90 ID:pH9MFdXCP
879名称未設定:2013/01/27(日) 14:38:25.02 ID:heazuR/00
>>875
してるけど、Core Foundation Lite という部分的な公開をしている
まぁ、主要な部分は公開してるからとても参考になるよ
880名称未設定:2013/01/28(月) 03:14:37.48 ID:o3AO7E3n0
なにそれ? お前の脳内妄想?

"Core Foundation Lite" の検索結果
約 189 件 (0.14 秒)
881名称未設定:2013/01/28(月) 03:34:31.37 ID:a5mdTJkw0
882名称未設定:2013/01/28(月) 07:10:35.28 ID:GutE8/K7P
>>880
恥書いたなw。
883名称未設定:2013/01/28(月) 11:23:38.48 ID:phJfZU+H0
しかも、おもいっくそなw
884名称未設定:2013/01/28(月) 12:11:24.88 ID:Z5DftuuE0
その検索結果も正しいしな
件数しかみてないのか
885名称未設定:2013/01/28(月) 16:25:54.92 ID:EyxIyF/f0
俺が知らないことなどない!
知らないことがあるとすればそれはすべてお前らの脳内妄想だ!
886名称未設定:2013/01/28(月) 20:10:20.50 ID:GutE8/K7P
 知らないってだけならともく、「お前の脳内妄想? 」まで書いちゃったしな。

 書いた本人は、恥ずかし過ぎてこのスレから1週間ぐらい雲隠れしているとおもうけど。
887名称未設定:2013/01/28(月) 23:44:27.72 ID:ZCMv+R0h0
脳内検索でもしてろ
888名称未設定:2013/02/02(土) 21:30:57.68 ID:1PZqgVyd0
>>880
おめでとうw
889名称未設定:2013/02/05(火) 02:36:47.58 ID:L/jOQIt5P
NSImageViewを使って、test1.gifという名前のGIFアニメを表示しようと、
下記のようなコードを書いたのですが、何も動かない静止画として表示されてしまいます
NSImage *image = [NSImage imageNamed:@"test1.gif"];
[_imageView setImage:image];

※ここで_imageViewは、下記の通りに宣言されています
@property (weak) IBOutlet NSImageView *imageView;

動かす為に必要な設定が抜けているのでしょうか?
890名称未設定:2013/02/05(火) 03:43:12.84 ID:5wfMzIrA0
Interface Builder で "Animates" をチェックしてる?
gif ファイルのディレイがきちんと設定されてる?
891名称未設定:2013/02/05(火) 09:03:16.70 ID:L/jOQIt5P
>>890
animatesにチェックを入れてうまく動きました
ありがとうございます
892名称未設定:2013/02/05(火) 22:16:01.68 ID:XaqCPVB20
Python と ScriptingBridge で iTunes を操作するスクリプトを書いています。
iTunes 上でトラックを1つ選択して下記のスクリプトを実行すると、
そのトラックにアートワークを付ける事は出来たのですが、

import ScriptingBridge
from AppKit import NSImage
app = ScriptingBridge.SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes")
img = NSImage.alloc().initWithContentsOfFile_(u'/Users/me/Desktop/a.jpg')
app.selection().get()[0].artworks()[0].propertyWithCode_(0x70504354).setTo_(img)

下記のスクリプトを実行すると、

app.selection().get()[0].artworks()[0].format()

<NSAppleEventDescriptor: 'PNG '>

PNGでくっついているようです。
なんとか jpg でくっつける方法は無いでしょうか?
ちなみに、AppleScriptでは jpg でくっついてくれます。
893名称未設定:2013/02/15(金) 17:53:28.02 ID:hs6HG9DYP
何かキーが入力された時にコンソール出力を行うプログラムを書こうと、
XCodeのCocoa Applicationで新規プロジェクト作成後、下記のようなコードを書きました

// AppDelegate.h------------------------------
#import <Cocoa/Cocoa.h>
@class MyWindow;
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet MyWindow *window;
@end

//MyWindow.h------------------------------
#import <Cocoa/Cocoa.h>
@interface MyWindow : NSWindow
- (BOOL)acceptsFirstResponder;
- (void)keyDown:(NSEvent *)theEvent;
@end

// MyWindow.m------------------------------
#import "MyWindow.h"
@implementation MyWindow
- (BOOL)acceptsFirstResponder {
return YES;
}
- (void)keyDown:(NSEvent *)theEvent {
NSLog(@"何かキーが入力されました");
[super keyDown:theEvent];
}
@end

ただ、このコードでは、ウィンドウをアクティブにしてキーを入力しても、
警告音(「ボン」という音)が鳴るだけでコンソール出力はされませんでした
何故キーイベントを取得できないのでしょうか?
894名称未設定:2013/02/15(金) 19:11:16.91 ID:hTpmmg1L0
>>893
うまく行かないのは、MyWindowがfirstResponderになってないからじゃないのか?
ViewならマウスクリックなどによってfirstResponderになるけど、Windowそのものははマウスでクリックできないからね。
最初に makeFirstResponder:とか使わないとダメなんじゃ?
895893:2013/02/16(土) 09:45:52.59 ID:n1E1F+NtP
>>894
FirstResponderとして設定できていなかったので、このようなコードを書きました

// AppDelegate.m
#import "AppDelegate.h"
#import "MyWindow.h"
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[_window becomeFirstResponder];
}
@end

しかしこれでも先と同様にキーイベントを取得出来ませんでした
他にどうすればうまく出来そうでしょうか?
896名称未設定:2013/02/16(土) 10:25:01.21 ID:XIVmPF9I0
>>895
>894 に指示されたメソッドとじゃないのはどういう意味?

の前にfirstResponderになれるViewが1つもないWindowをなにに使ってるのか気になる
実験的にkeyDownイベントの内容を調べてるだけなら
NSApplicationDelegateにハンドルされなかったイベントが全部飛んでくるはずだから
NSApplicationDelegateに-keyDown:を書けばいいんじゃね?
897893:2013/02/16(土) 10:59:44.86 ID:n1E1F+NtP
>>896
>>894 に指示されたメソッドとじゃないのはどういう意味?
[_window makeFirstResponder:_window];としてもキーイベントが取得出来なかったので
FirstResponderにするだけならbecomeFirstResponderを使えばいいのかなと思ってそうしました
説明不足ですみません

おっしゃる通りAppDelegateにkeyDownを書き、[_window makeFirstResponder:self];とした所、
無事キーイベントを取得出来ました、ありがとうございます!
898名称未設定:2013/02/16(土) 12:54:46.22 ID:gNdYtI130
>>897
> [_window makeFirstResponder:_window];としてもキーイベントが取得出来なかったので

keyWindowの設定も必要だったかもしれん
899名称未設定:2013/02/18(月) 22:36:50.21 ID:X3cHACVkP
objective-cってメソッド名に日本語使えないの?
900名称未設定:2013/02/18(月) 23:00:26.10 ID:NrU9fmP60
日本語をローマ字表記すればいけると思うよ
901名称未設定:2013/02/18(月) 23:08:34.48 ID:1gy/z/hg0
使えない。
902名称未設定:2013/02/18(月) 23:14:06.84 ID:X3cHACVkP
>>900-901
そっかー、ありがとう
903名称未設定:2013/02/19(火) 00:03:45.46 ID:zB091R5DP
[可変配列 入れ替えろ項目の添字:1 と項目の別の添字:3]って、ローマ字書くの?
日本語としておかしくね?
[aMutableArray exchangeObjectAtIndex:1 withObjectAtIndex:3]と英語の方が分
かりやすいと思うが? 普通に命令形そのままやし。
904名称未設定:2013/02/19(火) 00:22:00.24 ID:6Lfi1W6T0
日本語AppleScriptの恐怖が
905名称未設定:2013/02/19(火) 00:28:21.94 ID:HYXEDQ5Y0
[可変配列 入換与添字:一 与另一添字:三]
906名称未設定:2013/02/19(火) 01:45:44.67 ID:Jj0o1jN50
- (void)さっぱりわからねぇ:(NSInteger)arg;
907名称未設定:2013/02/19(火) 10:27:26.05 ID:R7tz6Xp1P
むかしアメリカ人プログラマと仕事した時、
日本語を変数にされると(gamenArgとかgazouArray)記号を覚えるみたいで大変だってことと、
可読性上げるために変数名を短くするのは良いことだけど、
assとかは笑っちゃうから辞めてくれといわれたのを思い出した。
908名称未設定:2013/02/19(火) 16:32:34.11 ID:T790EkB30
シンボル情報がローマ字日本語だとクラッキングされにくいて聞いたが
909711:2013/02/19(火) 20:44:17.51 ID:6rnmpFSa0
そんなもんArgとかArrayと可言われても
こっちからしたって記号を覚えるみたいで大変だーよ
引数イとか配列ロとかにしてくれよマジで
910名称未設定:2013/02/19(火) 22:59:25.79 ID:Sk1tAMcl0
>>904
いや、あれは面白い物だった

昔は変数名が英数字だけなのに不便は感じなかったけれど
データベース関係の仕事したら日本語変数名のありがたさが分かったよ
911名称未設定:2013/02/20(水) 01:43:30.50 ID:EqOwVZOE0
本物のクラッカーはアセンブリを読むから無意味だよ
912名称未設定:2013/02/20(水) 14:57:05.30 ID:gSmeiqL+0
本物、、

変数はいい加減な英語よりローマ字が推奨されてたな。
日本人ばかりのチームだったときだけど。
913名称未設定:2013/02/20(水) 17:32:57.80 ID:g3KYL7r80
別に本物のクラッカーじゃなくてもアセンブリくらい読むわ
914名称未設定:2013/02/24(日) 00:46:54.20 ID:akH5RW4I0
あたりまえだな
915名称未設定:2013/02/24(日) 11:32:32.14 ID:mbYu9NsB0
UIImageViewでalphaを変更すると表示される画像のalpha値が変わりますが
このalpha値が変わった状態の画像を取得・保存するためにはどうしたらいいでしょうか?
916名称未設定:2013/02/24(日) 12:02:45.04 ID:mbYu9NsB0
すいません
自己解決しました
917名称未設定:2013/03/04(月) 19:56:36.21 ID:NlIvGa2lP
http://uploda.cc/img/img51347a272faa1.jpg
上記1920px×1357pxの画像を下記コードで読み込んだ時、画像サイズが
width=460.8, height=325.68という、元画像より小さいサイズとして
認識されてしまい困っています

NSURL *img_path = [NSURL URLWithString:@"http://uploda.cc/img/img51347a272faa1.jpg"];
NSImage *image = [[NSImage alloc] initWithContentsOfURL:img_path];

私の環境だけでしょうか?何か回避策は無いでしょうか?
918名称未設定:2013/03/04(月) 20:05:31.39 ID:ZsltsKFz0
わんこー
1920/300*72=460.8
919名称未設定:2013/03/04(月) 22:25:35.95 ID:dcGjyoCo0
画像から直接取得したいならimagerepにしてpixelsWideとpixelsHighをつかわないと
920名称未設定:2013/03/04(月) 22:48:40.14 ID:Z2xK2EVz0
画像には解像度ってのが付いてたりすることを忘れるな。
921名称未設定:2013/03/05(火) 09:01:35.79 ID:0zMWAERIP
>>918-920
>>917のコードの後に、下記コードを挿入した所、うまく表示されるようになりました
ありがとうございます!

NSBitmapImageRep *image_rep = [NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]];
[image setSize:NSMakeSize([image_rep pixelsWide], [image_rep pixelsHigh])];
922名称未設定:2013/03/08(金) 14:27:33.07 ID:LrYBlLmgP
ツールバーに設定したSegmented Controlのインスペクタ→Control→Sizeをいじると
不可逆でこんな風に切れちゃうんですけどこれってIBのバグですかね?
皆さん再現出来ます?
http://uproda.2ch-library.com/642758Uc8/lib642758.jpg
923名称未設定:2013/03/09(土) 02:30:11.29 ID:oQ3gxL130
>>517
ツールバーアイテムにセットした view のサイズを自分で調節しろよ
924名称未設定:2013/03/09(土) 08:56:00.06 ID:y6AAy3YrP
>>923
そうですね、現状それで戻してます
あっ、じゃあ不可逆じゃないか。Undo出来ないって言った方が正しかったですね
925名称未設定:2013/03/11(月) 19:33:50.30 ID:X4lVDDD4P
NSImageとして読み込まれたアニメーションGIFを回転させる方法は無いでしょうか?

一度、下記URLのコードを参考に回転させたのですが、静止画となってしまいます
http://lists.apple.com/archives/cocoa-dev/2003/Sep/msg00748.html
926名称未設定:2013/03/11(月) 21:38:00.82 ID:8efk2IuD0
Viewを回転させたら?
927名称未設定:2013/03/11(月) 21:53:58.23 ID:X4lVDDD4P
>>926
それはやったんですが…と思ったらNSView#rotateByAngle:で出来ました…
やったと思ってたのは結局>>925のサンプルコードを呼んでただけでした
馬鹿すぎて恥ずかしいです、ありがとうございました。
928名称未設定:2013/03/16(土) 22:44:33.12 ID:GjLH4I5f0
~/Library/Preferences/xxx.LSSharedFileList.plist (最近使った項目) ファイルから
"Name"と"Bookmark"は取り出せたのですが"Icon"のパスはどうやって取り出すのでしょうか?
参考コード
http://stackoverflow.com/questions/14492799/last-opened-documents-using-cocoa
929名称未設定:2013/03/16(土) 23:57:49.65 ID:Gs4ycc4Q0
>>928
Nameとかと一緒だろ
930928:2013/03/17(日) 01:19:24.50 ID:mTHy0fO90
"Name"が String、"Bookmark" と ”Icon" が Data 系なので
"Bookmark"と同じ方法でやってみたんですが (null) しか返ってこないですよ
931名称未設定:2013/03/17(日) 02:56:16.88 ID:/3gf8GFa0
たぶんNSIconRefImageRepにでなんだろうな
932名称未設定:2013/03/20(水) 15:28:21.22 ID:tWuxGaIqP
アプリケーションが正しくローカライズされているかを調べる為に、
各言語での実行テストを行おうと思うのですが、
ビルドオプションなどには設定項目を見つけられませんでした
これって各言語ごとにシステム環境設定→言語とテキスト→言語
で優先順位替えて実行するしか無いのでしょうか?
933名称未設定:2013/03/20(水) 17:17:53.91 ID:BQh0deON0
>>932
今はFinderの情報を見るで言語を選択できなくなったけど、defaultsコマンドで直接設定するか、
Language SwitcherとかApp Language Chooserとかいうアプリを使えばいいらしいよ。
934名称未設定:2013/03/20(水) 18:16:01.96 ID:RzUhvsts0
ビデオカメラが趣味でMacに乗り換えようと思ってたけど
このページみてかなり揺らいでる

http://bbs.kakaku.com/bbs/K0000305712/SortID=13817942/
935名称未設定:2013/03/20(水) 20:07:54.92 ID:61rezikx0
スレ違いなことをageてまでというのは言葉と裏腹にというか、あからさまに嬉々として見えるんだがな
936名称未設定:2013/03/20(水) 20:11:07.94 ID:ItDHq6ub0
937名称未設定:2013/03/20(水) 20:16:15.31 ID:61rezikx0
探そうかなと思わないでもないとことろだった。どうもw
やっぱり性根が歪んでいるヤツか。>>934のような騙るような言い方もするとは、かなり重症だな
938名称未設定:2013/03/21(木) 15:20:17.39 ID:J2qFUwpd0
iPhone板でMac勧誘スレ立てるな馬鹿
939名称未設定:2013/03/21(木) 15:42:58.98 ID:hgQoxu2mP
iPhone板にどんだけMac勧誘スレが乱立してんのかと思って見たらたった1件で笑った
940名称未設定:2013/03/22(金) 01:33:19.97 ID:/YyKzgom0
内容チガイを指摘しているつもりなのかなんなのか知らんが、Mac板で一生懸命アンチ活動にいそしんでいるキチガイの大馬鹿の張り付けだからそんなもん
941名称未設定:2013/03/31(日) 16:51:40.20 ID:6ldigovYP
NSURL *url = [NSURL URLWithString:@"https://developer.apple.com/jp/devcenter/ios/library/documentation/iPhoneAppProgrammingGuide.pdf"];
PDFPage *pdf_page = [[[PDFDocument alloc] initWithURL:url] pageAtIndex:6];
NSPDFImageRep *rep = [NSPDFImageRep imageRepWithData:pdf_page.dataRepresentation];

上記コード実行時、読み込み自体はうまくいっているように見えるんですが、何故か下記警告が出てしまいます
1〜5ページ目はこの警告は出ないのですが、どうすればこれを解決出来ますでしょうか?

<Error>: WARNING: Type1 font data isn't in the correct format required by the Adobe Type 1 Font Format specification.
942名称未設定:2013/03/31(日) 22:05:30.95 ID:3yRhjM6L0
>>941
Preview.app でも出るんだから気にしなくていいんじゃね。ワーニングの理由は書いてある通りなんだろう=ドキュメントが悪い

Previer.app で、6ページ目をプリント(PDFで保存)で全く同じメッセージが出る
PDFViewでの表示だと出ない。Preview.app での表示も PDFView なんだろう
943名称未設定:2013/03/31(日) 22:22:36.58 ID:6ldigovYP
>>942
なるほど、ありがとうございます!
944名称未設定:2013/04/01(月) 01:49:57.46 ID:j9FQja6x0
これが現実


Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win
Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win
Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win
Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win
Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win

---(越えられない壁)---

Mac
Mac
Mac
Mac
Mac

iPhone板でMac勧誘スレ立てるな馬鹿
945名称未設定:2013/04/01(月) 14:06:06.89 ID:ggkhdmCwP
http://developer.apple.com/library/mac/#samplecode/PictureSwiper/Introduction/Intro.html
上記サンプルを見ていたんですが、プロジェクト内にあるimageview.xibにおいて、
再現できない構成のオブジェクトにぶつかり困っています

imageview.xibを見ると@のような構成を持つScrollViewがあります
@http://uproda.2ch-library.com/651756BU0/lib651756.jpg

これを自分で作ってみようとした結果、Aのようになったのですが、
Auto Sizing Image Viewのインスペクタを見てもNSViewとしての項目しかなく、
@の場合だと表示されていた、ImageView特有のオプションが表示されません
Ahttp://uproda.2ch-library.com/651757Uls/lib651757.jpg

どのようにすれば自分で@のような構成を再現できるでしょうか?
946名称未設定:2013/04/01(月) 19:21:52.23 ID:u8j0RROk0
>>945
へんてこりんな方法でできた
・Custom View (NSView) を作ります
・Custom View の中に Image Well (NSImageView) を置きます
・Image Well を選択して(すでに選択されているからいいけど)、Editor > Embed In > Scroll View を選びます
・Image Well が Scroll View にラップされ希望通りなので、Scroll View をトップレベルに移動します
・Custom View を消します
947945:2013/04/01(月) 19:34:27.14 ID:ggkhdmCwP
>>946
Embed Inという設定項目は知りませんでした
Image Well置いた後、Editor > Embed In > Scroll Viewを選択するだけで
良いっぽいですね
上手くいきました、ありがとうございます!
948名称未設定:2013/04/01(月) 19:37:05.98 ID:u8j0RROk0
>>947
トップレベルに Image Well置いた後、Editor > Embed In > Scroll View は選べなくない?
ともあれ、なにより
949名称未設定:2013/04/01(月) 20:01:09.25 ID:ggkhdmCwP
>>948
あっホントですね
失礼しました
950名称未設定:2013/04/03(水) 11:56:50.31 ID:CW4fbhR1P
メインのクラスの名前ってやっぱりMainController?
951名称未設定:2013/04/03(水) 12:35:44.46 ID:8euSCFsP0
 
バッテリ交換できるタブレット「Dell Latitude 10」をレビューする  
http://itpro.nikkeibp.co.jp/article/COLUMN/20130214/456301/?ST=win&P=1

CPU Intel Atom Z2760 1.80GHz
メモリー 2GB
ストレージ 64GB SSD
GPU Intel Graphics Media Accelerator
ディスプレイ 10.1インチHD(1366×768ドット)
OS Windows 8 Pro(32ビット)
重量 697g
販売価格 5万円前後

・バッテリー交換可能!しかも安い!
>本体付属の標準バッテリを2セルまたは4セルのどちらにするか選択できる。
>さらにアクセサリとして2セルタイプが3979円、4セルタイプが5288円で販売されており、必要に応じて追加購入できる。

・筆圧対応スタイラス対応! 
>ワコムによるアクティブスタイラスにも対応する。今回のレビューではスタイラスを入手できなかったが、
>サードパーティのペンを用いて快適にペン入力ができた。  

・USBで充電が可能!SDカードスロット搭載!HDMI出力可能!
>スマートフォンと同じ一般的なBタイプのmicroUSBケーブルを用いて充電できる。
>SDカードスロットは標準サイズのため、デジタルカメラとの連携も便利だ。
>HDMI端子はビデオカメラなどで利用されるミニHDMI

・最大20時間のバッテリー駆動!
>Clover Trailタブレットとして標準的な性能、9時間以上の駆動が可能
>60Whの4セルバッテリを使えば実に20時間近い動作を期待できることになる。
 
952名称未設定:2013/04/03(水) 14:15:12.00 ID:AmuLZd9D0
>>950
何のメインやねんっ
953名称未設定:2013/04/03(水) 20:59:47.85 ID:FkH+zt2aP
メインメニューが持つMenuItemのショートカットが押下された時、
そのMenuItemの親のMenuItem(?、File、Edit、Window、Helpなど)が
青く反転されますが、これを反転しないようにするにはどうすればよいでしょうか?

それが実現できているアプリを見たことがありますので、出来る事は出来ると
思うのですが、その方法が分からず困っています
954名称未設定:2013/04/03(水) 21:39:24.28 ID:KRtypkQg0
>>953
NSApplicationのサブクラスを作って、sendEvent:をオーバーライドしてみるのはどうだ?
955名称未設定:2013/04/04(木) 11:03:50.53 ID:cLV33x8iP
>>952
主にメインウインドウの機能を扱うクラスです。

>>953
実はメニューのショートカットはダミー(単に文字が書かれているだか)で
自前でキーイベント拾ってるとか(自分はそれをやったことがある)
956名称未設定:2013/04/04(木) 17:50:00.04 ID:1+2RQ8fD0
MainWindowControllerでよくなくない??
957953:2013/04/04(木) 18:40:12.07 ID:fgxcodYBP
>>954
むむむ、なかなかハードル高そうですね

>>955
それはMenuItemのタイトルにKeyEquivalentの部分を含めるという事でしょうか?
>>953で書いた「実現できているアプリ」とはNetBeansの事なのですが、
下図のようにタイトルとキーは左右に別れて表示されている為、本件もそのようにしたいです
http://uproda.2ch-library.com/6528324jP/lib652832.jpg
958名称未設定:2013/04/04(木) 19:17:01.05 ID:l7NivIH80
>>957
NetBeansってJava(Swing?)だよね。ObjC(Cocoa)使わずにJavaで書けば?
ってか、メニューを反転したくないとかHIガイドライン違反だと思う。そんなMacらしくない糞アプリ使いたくない。
959953:2013/04/04(木) 20:23:41.88 ID:fgxcodYBP
>>958
ショートカットを用いて連続使用される可能性が高いMenuItemがあり、
ユーザーからしてみればチカチカうっとおしいんじゃないだろうかと思い、
反転しないように出来ないかと質問しました
あとちょっと話し変わりますがHIガイドラインってなんでしょうか?
960953:2013/04/04(木) 20:34:12.27 ID:fgxcodYBP
>>958
書き忘れてました
Javaへの移行ついては、適用しようと思っているプログラムがもう相当量
ObjCで書かれてるので厳しいですね
961名称未設定:2013/04/04(木) 21:10:00.01 ID:1+2RQ8fD0
ファイル(F) 編集(E)
なんてアプリを例に出し見習うなんて!という嫌みを含んでのことだろう
まあ「HIガイドラインって何?」って聞くぐらいだから分からないだろうけど

>ユーザーからしてみればチカチカうっとおしいんじゃないだろうか
個人的には無い。オートリピートでチカチカ激しくても仕事してるなあと思うだけ。個人的には
962953:2013/04/04(木) 21:22:48.69 ID:fgxcodYBP
>>961
HIガイドラインというのはヒューマンインターフェースガイドラインのことですね、分かりました
これでAppCodeの審査を弾かれるようならJava製のアプリ全てが弾かれることになってしまいますし
まあ致命的な問題なさそうですね
963名称未設定:2013/04/04(木) 21:29:50.79 ID:1+2RQ8fD0
うん。別に致命的ではない。まあ好きにすれば>>954が手っ取り早く簡単だし
964953:2013/04/04(木) 21:32:22.74 ID:fgxcodYBP
>>963
そうですね、ありがとうございます
結構スレを汚しちゃいましたね、失礼しましたー
965名称未設定:2013/04/04(木) 22:37:21.99 ID:Xz1iH4fX0
OS標準の機能を否定するような真似はやめていただきたい
966名称未設定:2013/04/04(木) 22:48:05.28 ID:fgxcodYBP
>>965
場合によっては変更したいと言うだけで否定してるつもりは無いですよ
967名称未設定:2013/04/04(木) 22:59:14.78 ID:Xz1iH4fX0
結局同じだろ。
968名称未設定:2013/04/04(木) 23:06:11.51 ID:1+2RQ8fD0
笑。別にええやん。俺もお前も使いそうにないアプリなんだろうから
まあ、iOSアプリのぐちゃぐちゃ見たらそうも言ってられないとかありそうだけど、どうでもいいなw
969名称未設定:2013/04/04(木) 23:26:44.47 ID:fgxcodYBP
>>967
オーバーライド程度で変更出来るものを変更したいと言ったら否定ってのはちょっと…
970名称未設定:2013/04/04(木) 23:36:33.84 ID:1+2RQ8fD0
いい加減お前も口の減らないヤツと見えるな
>むむむ、なかなかハードル高そうですね
なんて言っていたのに。短期間で成長したもんだなあw
971名称未設定:2013/04/04(木) 23:49:38.83 ID:fgxcodYBP
>>970
口が減らないのはお互い様ですね
ハードルが高いと言ったのはレベルの低い私にとってなだけであって
一般的に考えれば「程度」でしょう
また設定一発で実現出来るかもと思っていたのもありますね
972名称未設定:2013/04/04(木) 23:51:12.39 ID:Xz1iH4fX0
世の中の「糞仕様」はこうやって作られる。
973名称未設定:2013/04/04(木) 23:54:35.27 ID:1+2RQ8fD0
はあ?お前の目的は>>954で終わってるだろうに。いつまでダラダラやるのかと思ったら、まだやるのねw
>>964を自ら読んでみてみ。何も思わないの?
その>>971にしたって「レベルの低い私」がよく言うよと思うのだが、お前はわからないんだろうな
てことなんだがw
974名称未設定:2013/04/05(金) 00:00:22.27 ID:IOi8xbloP
>>973
そうですね、ちょっと熱くなってしまったようです
今度こそさようなら
975名称未設定:2013/04/05(金) 00:04:19.02 ID:1+2RQ8fD0
ちゃんとピンポイントで教えてもらたったID:KRtypkQg0さんにお礼を言ってから帰りやがれっ。なんつって
じゃ、ばいばい
976名称未設定:2013/04/05(金) 09:27:32.95 ID:VaSvEnEEP
質問に答えを出してから相手を否定するのはいいけど
結局答えられずに相手を否定するだけなのは見苦しいよね
977名称未設定:2013/04/07(日) 00:49:51.33 ID:iCuVGzpd0
たしかシステム環境設定でメニュー項目にユーザーが自由にショートカット割り当てられるから
特殊なことやるならそれなりに作りこまないと何だこの糞アプリな残念な結果になるような気がする。
ちかちかするのがうざいほど頻繁に使う項目ならユーザー自身が使いやすいと思うショートカットを
割り当てる可能性も高いと思うし。

メニュー項目に表示されるショートカットはダミーでアプリ内部でキー決めうちで独自に検出してるって
ヘルプにかいてあるだろーが。ヘルプ読まないお前が悪いって流れが最近のMacみたいだけど、なんかな
978名称未設定:2013/04/07(日) 01:07:40.19 ID:ST8DvFbl0
ただ単にあれだけだったら別に作り込むというほとではないがな
979名称未設定:2013/04/08(月) 00:27:59.79 ID:dMG88k/m0
だから糞仕様なんだよ。リスクが大きすぎる。
980名称未設定:2013/04/13(土) 21:10:46.89 ID:uBuVrAMfP
iTunes Library Framwork公開されたな。iOSのMedia Player Frameworkと比べれると機能
的に微妙だが。
981名称未設定:2013/04/13(土) 21:36:38.10 ID:Rk/a9bphP
汎用的な処理(例えば秒を時:分:秒のフォーマットに直す)はどこに書けばいいですか?
982名称未設定:2013/04/13(土) 22:08:58.40 ID:qme4qE570
お好きな所にお好きなようにどうぞ

NSString+Date.h
@inteface NSString (Date)
+ stringWIthDateFormat:(NSString *)format forSeconds:(NSTimeInterval)seconds;
@end

NSDate+String.h
@intaerface NSDate (String)
- stringWithDateFormat:(NSString*)format;
@end

な?なんか好みじゃないだろ?w
正解は無いよ
983名称未設定:2013/04/13(土) 22:40:52.12 ID:uBuVrAMfP
カテゴリーを使いこなせるようになったら、他の言語に戻ろうと思わなくなるな。
XXXUtilみたいなクラスをいちいち作らなくていいし。
984名称未設定:2013/04/13(土) 23:19:39.92 ID:Rk/a9bphP
>>981-982
回答ありがとうございます
ただ汎用的な処理がかなりあって用途(親になりそうなクラス)もバラバラで
個々にextensionファイルを作るのも大変なのですが
そういう時でもやはり個々のクラスの拡張ファイルとしてきちんと
書くものなのでしょうかね?
985名称未設定:2013/04/14(日) 00:35:36.32 ID:2cRludW40
好きにすればええやーんw
Cocoaのヘッダー見ても、ちょこちょこ複数入っていたりするでしょ。とても密接なもんだったりするけど

バラバラにするのが面倒なら一つのファイルで
バラバラにするのが面倒では無いが使う時に面倒だったら、Frameworkヘッダー(AppKit/AppKit.hなど)のようなの一つ作って、そこでバラバラをimportするとか

好み好み、あたの好みでどうぞどうぞ
986名称未設定:2013/04/14(日) 19:32:51.26 ID:zM6EBZ/B0
>>981, 984
>>汎用的な処理(例えば秒を時:分:秒のフォーマットに直す)
であれば Cのfunctionで書いてもOKでしょう
例えば、
NSString *dateFormatFromSeconds (NSTimeInterval seconds){…}
etc

というふうにしてひとつのファイルにすれば、よいと思いますよ。
987名称未設定:2013/04/14(日) 22:28:22.82 ID:yP+JaQM30
>>984
かなり限定用途だが。

(旧) Cocoaの日々: NSValueTransformer
http://xcatsan.blogspot.jp/2008/04/nsvaluetransformer.html

さらに、.hに.mをごっそり記述して1ファイルにしたり。
988名称未設定:2013/04/15(月) 17:32:22.62 ID:cJQoLXFwP
>>980
Read onlyが多い...ってか全部?
989名称未設定:2013/04/15(月) 18:51:46.24 ID:wwBlKMTk0
iTunes Library Framework Reference の頭に
「iTunes library access is read-only.」
ってしっかり書かれてますし。
990名称未設定:2013/04/15(月) 19:47:41.24 ID:B73o30y3P
メタデータに書き込むアプリ、iVolumeとかどうすんやろね?
991名称未設定:2013/04/15(月) 23:09:14.18 ID:cJQoLXFwP
>>990
Apple eventでiTunesに依頼かな。
CocoaならAppleScript文字編集して呼び出すのも簡単。
992名称未設定:2013/04/16(火) 22:32:50.64 ID:ygKPuSi7P
前見たいにiTunes Visual PluginのAPIを公開してくれないかな? プラグインを作りたい。
993名称未設定
>>992
qtzで作ったのは普通に動いてるけど?