Cocoaはさっぱり!!! version.13
at MAC
1:名称未設定
09/05/04 12:25:25 uDYhVLXL0
■前スレ
Cocoaはさっぱり!!! version.12
スレリンク(mac板)
■関連スレ
Macでプログラミング{9}
スレリンク(mac板)
MacOS XをUnixとして使ってる人の為のスレ その14
スレリンク(mac板)
Xcode part7
スレリンク(mac板)
MacでJava その4
スレリンク(mac板)
RubyCocoa 初心者質問【Leopardバンドル記念】
スレリンク(mac板)
AppleScript アップルスクリプト 質問、発表 3
スレリンク(mac板)
iPod touch/iPhone ネイティブアプリ製作 ver.10
スレリンク(mac板)
Objective-C [ObjC part:4];
スレリンク(tech板)
2:名称未設定
09/05/04 12:26:05 uDYhVLXL0
■Web
Cocoa wiki
URLリンク(cocoawiki.aerial.st)
ADC
URLリンク(developer.apple.com)
CocoaDevCentral
URLリンク(cocoadevcentral.com)
CocoaDev
URLリンク(cocoadev.com)
Cocoa Blogs
URLリンク(cocoablogs.com)
Cocoaはやっぱり!
URLリンク(www.big.or.jp)
HMDT
URLリンク(homepage.mac.com)
OOMORI.com - Cocoaリファレンス
URLリンク(www.oomori.com)
Cocoa Study Blog
URLリンク(blog.cocoa-study.com)
Cocoa Break!
URLリンク(park15.wakwak.com)
Cocoa Bindings Examples and Hints
URLリンク(homepage.mac.com)
Cocoaで遊ぼう!!
URLリンク(homepage.mac.com)
itok's Lab
URLリンク(110k.net)
Vacuous Virtuoso
URLリンク(lipidity.com)
MOSA テクニカルドキュメント
URLリンク(www.mosa.gr.jp)
3:名称未設定
09/05/04 12:33:22 2C019ily0
>>1おる!
4:名称未設定
09/05/04 12:44:38 YtFZQwa70
[1 otsu];
5:名称未設定
09/05/04 12:59:37 lCsUNx0R0
>>1
or乙
6:名称未設定
09/05/04 13:05:05 GcKY4X1V0
[前スレ release];
7:名称未設定
09/05/04 14:32:54 MN0mjn8F0
>>6
まだ retain している奴がいるみたいだ
8:こうか?
09/05/04 21:01:23 gtujWb2n0
[前スレ autorelease];
9:名称未設定
09/05/05 22:23:48 8tS77hvh0
早い内に宣言しとくか
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
10:名称未設定
09/05/05 22:30:54 R7vlBhb00
>>8
>>9
ちょwwwプールなかったのかw
11:名称未設定
09/05/05 22:45:51 Eg9DsySZ0
[pool release];
12:名称未設定
09/05/05 23:05:24 8zalga+I0
おいこら
13:名称未設定
09/05/06 00:14:41 FqhT4q3T0
ええー、ガベコレじゃないの?
14:名称未設定
09/05/06 01:03:43 /EEUpqJG0
ビデオとかオーディオ系のアプリだとガベコレ使わんよね?
なんかパフォーマンス激落ちした記憶が
15:名称未設定
09/05/06 01:49:54 ky4Uli1Q0
適材適所。あんまり厳しいところはObj-Cも使わないかも。
16:名称未設定
09/05/06 10:56:57 W6WEme5U0
どうせ質問出るだろうから
書籍
【Objective-C】
詳解 Objective-C 2.0「荻原本」(ソフトバンククリエイティブ 、08/5)荻原剛志
Dynamic Objective-C「ダイナミック本」(BNN新社、09/3)木下誠
【Cocoa全般】
Mac OS X Cocoaプログラミング「ヒレガス本」(ピアソンエデュケーション、02/06)アーロン・ヒレガス
HappyMacintoshDevelopinTime 2nd Edition「黒本」(BNN新社、04/6)木下誠
HappyMacintoshDevlopingTime 3rd Edition「赤本」(BNN新社、06/5)木下誠
たのしいCocoaプログラミング「たのここ」(BNN新社、08/8)木下誠
【iPhone】
iPhone SDKプログラミング大全(アスキー・メディアワークス、09/1)木下誠
iPhone デベロッパーズ クックブック「エリカ本」(ソフトバンククリエイティブ 、09/2)エリカ・サドゥン
iPhoneSDKの教科書(秀和システム、09/3)赤松正行
基礎からのiPhone SDK(ソフトバンククリエイティブ 、09/4)鶴薗謙吾
17:名称未設定
09/05/06 12:09:18 Z1f55c9/0
CocoaではじめようMac/ iPhoneプログラミング入門(秀和システム、09/3)中野洋一
18:名称未設定
09/05/09 09:15:10 wZLTz+uY0
アイホン本多すぎwww
マクよりアイフォンのほうが売れてるようだ。
19:名称未設定
09/05/09 13:04:14 +8i9ZJol0
>>18
>アイホン本
尼見てるだけだが、しょーもない本もあるようだね
内容はともかく、ネイティブアプリ製作スレの消費もこっちより早いし
ま、参入者増えたのはいいんじゃないの
20:名称未設定
09/05/09 15:40:36 s+5zWOUU0
しょーもないもんで金盗るなよ...
21:名称未設定
09/05/09 18:11:57 Lp5s1i6t0
だって、中の人はおんなじだもん
22:名称未設定
09/05/09 23:18:33 wZLTz+uY0
$99払って大儲け詐欺っぽい傾向だが。
無料ならいっぱいダウンロードされるけど、有料だとさっぱりって現実。
23:名称未設定
09/05/09 23:35:58 HiO6fmc80
>>22
Cocoaを覚える人が増えても、iPhoneアプリを2、3本作っただけで終わりそう。
Macのアプリまで手を出さないだろうな。
24:名称未設定
09/05/09 23:47:18 qYG+6Skz0
>>18
マク?
25:名称未設定
09/05/10 00:14:58 ITfhGX7v0
>>18
アイホンでもアイフォンでもなくアイフォーンだぞ。
26:名称未設定
09/05/10 11:10:40 TeTkJtKx0
あいぽん
27:名称未設定
09/05/11 09:41:45 gCZES4s+0
質問です
nilにメッセージを投げると無視されますが、
たとえば
[mutableArray addObject:object];
で引き数objectがnilだと例外が発生しますよね
こういう場合も素直に無視してくれれば楽だと思うのですが、
レシーバがnilは無視で引き数がnilだと例外発生ということに
何か明確なメリットはあるのでしょうか?
28:名称未設定
09/05/11 09:59:40 VQPLhBtK0
>>27
nilを引数にすると必ず例外発生というわけじゃない。
NSMutableArrayの場合、配列の中身として nilを許可できないので例外になる。
nilじゃなくても許可できない値(スカラー値とか)の場合は例外になる。
レシーバが nilの時にメッセージを送っても nopになるのは言語仕様。
引数が nilの時にどうするかは、クラスとメソッドの指針。引数として nilを許可するメッセージはよくある。
29:名称未設定
09/05/11 12:34:41 gCZES4s+0
>>28
あー、なるほど
たしかに引き数nilの時の振る舞いを言語仕様として定義することはできないですね
スカラー値とnilは区別しようも無いので例外というのもわかります
(NSObjectのサブクラスじゃない場合は全部無視しても良いような気もしますが)
if(object)
[array addObject:object];
といちいちかくのが面倒だなーと思っただけなんですけどね
カテゴリでnilSafeAddObject:とか追加するかな
30:名称未設定
09/05/11 21:30:17 tPSgDZwP0
変な質問ですがよろしくお願いします。
NSLog((NSString *)kMDItemDisplayName);
NSLog((NSString *)kLSItemDisplayName);
とした時、NSLogの結果は
kMDItemDisplayName
LSItemDisplayName
となります。
なぜ後者はkが抜けるのでしょうか?両者が宣言されているMDItem.hとLSInfo.hを見ると
MD_EXPORT const CFStringRef kMDItemDisplayName MD_AVAIL; // CFString
extern const CFStringRef kLSItemDisplayName AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
と宣言のされ方が違いますが、これがどのように影響を与えているのか分かりません。
そもそもスレ違いかも知れませんが、、よろしければ解説お願いします。
31:名称未設定
09/05/11 21:53:10 Oo5tqRqh0
>>30
kMDItemDisplayNameには"kMDItemDisplayName"という文字列が入っていて
kLSItemDisplayNameには"LSItemDisplayName"が入っていた。それだけ。
32:名称未設定
09/05/11 22:21:47 tPSgDZwP0
>>31
中の文字列はユーザには見えない別のところで定義されているということでしょうか?
33:名称未設定
09/05/11 22:28:37 Oo5tqRqh0
>>32
そう。externでググれば分かる。
例えばNSString *fusa = @"hage"; ってなってたとしてNSLog(fusa); でhageが表示されるのは当たり前でしょ。
externで宣言と定義や実装を分離してるだけで、それと同じ。
34:名称未設定
09/05/11 23:32:22 tPSgDZwP0
>>33
Cocoaから勉強し始めたのでCはイマイチ分からないんですよね。
もうちょっとググって勉強してみます、すいません。
35:名称未設定
09/05/11 23:50:48 jvwak+JR0
みなさん NSLog() の第一引数に直接表示したい文字列を渡すのはやめましょう。
NSString*hoge=@"%@%@";
だったばあいに
NSLog(hoge)
とするとクラッシュする可能性大です。
36:名称未設定
09/05/12 08:05:27 nrYuYvsK0
>>35
NSString *hoge = [NSString stringWithFormat:@"%@%@",hoge1,hoge2];
じゃなくて?
37:名称未設定
09/05/12 08:46:39 n1Sh7mBn0
cocoaはさっぱりヽ( ´ー`)ノ
38:名称未設定
09/05/12 08:56:15 cO5aAwq80
>>35
なんで?
39:名称未設定
09/05/12 09:20:46 5ukzhphT0
printfとかと一緒の理由だけど
%@を見つけると、引数リストの該当位置にcocoaなObjectがあるとして、-[NSObject description]を送ろうとする。
ところが引数リストが無いので、コンパイラはその辺初期化も何もしていない。
ってことで、該当位置は何が入ってるかは誰も分からない。
そこに、触ってはいけないアドレスが入ってるとEXC_BAD_ACCESSが出たりする。
40:名称未設定
09/05/12 10:34:10 nrYuYvsK0
>>39
それはNSLogの問題じゃなくて%@に値を与えないプログラマの問題だと思うが。
41:名称未設定
09/05/12 11:04:57 98lBQIN90
>>40
ユーザーの入力した文字列をログに吐こうとして
NSLog([textField stringValue]);
とすると、ユーザーが %@ と入力してるとクラッシュしかねないので、
ずぼらせずに
NSLog(@"%@",[textField stringValue]);
と書きましょうといってるだけです。
>>30 さんの場合とかは、
kMDItemDisplayName 内に何がはいってるかわからない、
%@ がはいってない保証がないのであれはマズいと。
42:名称未設定
09/05/12 13:38:06 nrYuYvsK0
>>41
全然そんな事言ってなかっただろ。
だいたい無意味なNSLogを残したまま配布用のビルドをすべきではない。
43:名称未設定
09/05/12 22:22:27 prS7MZSPP
Core Animation で透明ウインドウの上でアニメーションを動かすと
その下に再描画されているウインドウがあるとその再描画のタイミングでちらつきますね。
このちらつきを回避する方法はあるのでしょうか?
44:名称未設定
09/05/12 22:31:07 xB/6dHwE0
NSLog()の出力先はstderrなので、デバックかエラー出力のために使う。
NSLog(hoge);とやってクラッシュする可能性があるのは、hogeの中に運悪く'%'が含まれているときだけだ。
だから、NSLog(hoge)でクラッシュする確率は低い。
デバック中にNSLog(hoge)を書くことによってクラッシュしたなら、そのときにNSLog("%@", hoge)に書き直せばいい。
どのみちデバックが完了したらNSLog()は削除される。
エラー出力のときは、メッセージのフォーマットを考えるはずなので、たぶん大丈夫だ。
45:名称未設定
09/05/12 22:56:18 H+KA29wm0
リリース版でもコンソールにログ出してるアプリは沢山ある。
運悪くも何も、フォーマット文字列攻撃っていう良く知られた方法だから、対策しておくことに越したことは無い。
46:名称未設定
09/05/12 23:37:28 9nw2sJcT0
俺もNSLogにそのまま文字列渡すことは無いが、>>30はそもそもそれが主旨ではないから突っ込まなかった。
47:名称未設定
09/05/13 00:17:21 g0aeBdQN0
>>45
>リリース版でもコンソールにログ出してるアプリは沢山ある。
あるからやってもいい、という解釈はどうなんだろうか。
少なくともユーザーから受け取った文字列をログに吐く事に何も意味が無いと思うが。
48:名称未設定
09/05/13 00:25:15 /Ph7rNoz0
NSLogは第一引数にはdescriptionを投げてくれない。
昔これで躓いた。
49:名称未設定
09/05/13 00:27:56 QSUL1DG70
>>47
それが良い/悪いとか有意/無意とかじゃなくて、フォーマット文字列を解釈する関数全般に
そういう脆弱性があるんだから、常にワンステップ置く癖をつけた方が良いよ、という話。
50:名称未設定
09/05/13 00:42:28 yXWILcyg0
>>30です
kMDItemやkLSItemで取り出したファイル情報を、取り出し時のkeyまま自分のDictionaryに
[dictionary setObject:hage forKey:(NSString *)kMDItemDisplayName];
てな感じで突っ込んだところkLSItemの時はkeyが違うなと気付いたのです。
NSLogに関しては何にも考えず簡単な検証例として挙げてしまいました。
51:名称未設定
09/05/13 00:45:30 QSUL1DG70
>>30
>>35からの流れにレスしているだけなので、気にしないでください。
52:名称未設定
09/05/13 00:52:55 g0aeBdQN0
>>49
癖をつけた方が良いという意味なら、それこそNSLogをコメントアウトしてからビルドする癖をつけるべきだろ。
NSLogの脆弱性について異論は無いが、その主張に固執して本質を忘れてないか?
53:名称未設定
09/05/13 00:59:37 noGTpvEW0
初心者の俺でも論点が全く噛み合ってないことはわかる。
54:名称未設定
09/05/13 01:02:42 QSUL1DG70
>>52
あなたの言う本質が多分私の本質と違うんだろうね。
リリース版で余計なログを出さない、という観点で、コンパイラスイッチで
NSLogのコードを消すのは分かる。
私が言いたいことの本質は、フォーマット文字列を解釈する関数はNSLogに限らず沢山あるので、
直接文字列/オブジェクトを渡さない癖をつけた方がいいよ、ということ。
NSLogだけ対策すればいいわけじゃないんでね。
55:名称未設定
09/05/13 06:38:12 g0aeBdQN0
>>54
こいつアホや
56:名称未設定
09/05/13 07:39:36 L+53GQxw0
NSLogはもういいよ。
別スレでやってくれ。。。。
と思ったけど、このスレになっちゃうのか..orz
57:名称未設定
09/05/13 08:47:21 anlyPVMoi
NSLogスレ立てればおk
58:名称未設定
09/05/13 09:04:51 Gwxjdxt/0
_ ∩
( ゚∀゚)彡 おっぱい!おっぱい!
⊂彡
59:名称未設定
09/05/13 09:23:32 HpoQfCTB0
>>56
一応こんなスレがある
Macでプログラミング{9}
スレリンク(mac板)
60:名称未設定
09/05/13 09:42:55 XdvBQVpW0
クライアントがアプリを捜査中何か不具合が出たときの為に動作の履歴をログで残しといてと言うからNSLogを使って吐き出してるんだけど
>>52の意見からすると他の方法を使う方が良い?
アプリ自身の不具合によるエラーでなくてネットワークの通信エラーとかね。
61:名称未設定
09/05/13 12:49:56 Oz1ba0bW0
>>60
僕は >>52 の意見には同意出来なくて、リリース版でも
NSLog で情報を console に出すのはためらわないでいいと思う。
箱に入れて売るぐらいの商用ソフトならともかく、
クライアントと緊密にやりとりしてやってる場合なら
コンソールにいろいろ debug 情報を出すのは何も悪くないとおもうが。
というかそのためのコンソールでしょう。
いまも Console.app をたちあげると
アップル製のソフトがいろいろとおもろい情報を吐き出したのがみえますよ。
もちろんバグのせいで NSLog にログを吐きまくって
CPU が 100% になるぐらいしてはいけませんが...
62:名称未設定
09/05/13 15:28:08 9LrONd3O0
僕もそう思いますね。(1)NSLog自体は時と場合に応じて使う、(2)そして第1引数は変数にしない、という感じですかね。
>>43
Core Animation は興味があります。
どのようなちらつきになるのかテストしてみたいので簡単なサンプルなどアップすることはできませんか?
63:名称未設定
09/05/13 21:14:20 nVj0Hv1VP
>>62
用意してみました。この下に動画などリフレッシュするビューがくるとちらついてしまいます。
URLリンク(www1.axfc.net)
password: Core Animation
どうでしょうか
64:名称未設定
09/05/14 01:01:26 d28Ohhqc0
確かに描画のタイミングでちらつきますね。
ためしに Terminal.app の上に持っていっても、描画があるたびにちらっとちらつきます。
で、解決策はわかりませんでした(核爆)
65:名称未設定
09/05/14 05:44:36 xPbVTOO6i
>>64
か、核爆…
66:名称未設定
09/05/14 06:41:57 8Z9WzWce0
なつかしいな。
67:名称未設定
09/05/14 06:52:04 d28Ohhqc0
てへてへ。それはともかくこういうのって仕様なんですかね。
Core Animation 得意な方のご意見をきいてみたすなあ
68:名称未設定
09/05/14 08:50:53 7sgh35wY0
単なるスペック不足
69:名称未設定
09/05/14 09:23:58 WqR37kki0
>>68
同意しかねる
70:名称未設定
09/05/14 13:57:15 1Pyn2KioP
>>64
チェックありがとうございました。やっぱりちらつくんですねえ。
うーむ。Core Animation ってそういうもんなのかなあ。
>>68
最高スペックの Late2008 の MacBook Pro でもそうなのでそれは違うでしょうね。
Mac Pro でもあとでやってみます。
71:名称未設定
09/05/14 16:32:00 pfNBB2ufi
>>70
これ、OpenGL周りの問題っぽいんですよね。以前
URLリンク(lists.apple.com)
が流れて気になって調べたんだけど確かに現象が出る。QTCoreVideoの
TeaPotの上に先のプログラムを置くと下のポットの方にもフリッカーが
出るんです。解決策解らず
このlistでも結論は出てないので、WWDCあたりで突っ込みを入れるのが
正解だと思います。
72:名称未設定
09/05/14 16:35:43 pfNBB2ufi
QTCoreVideo>QTCoreVideo101
73:名称未設定
09/05/14 16:42:05 B8qxAkQF0
WDDCで突っ込みを入れて修正されるのが10.5.8か10.6かで事情が変わってくるな
過去には切り捨てられたバグも…
74:名称未設定
09/05/14 16:48:55 aNVF999j0
>>71
OpenGLじゃなくてQuartzの問題じゃない?
透明ウインドウにOpenGLで直に描画してもチラつかないし。
75:43
09/05/14 17:03:33 jO61i7Cr0
>>71
おっとこのような情報があったとは。なんという有益な情報でしょう。
ありがとうございます。WWDC 参加したかったですが今年もだめでした。
一度行ってみたいなあ。
>>73
へえ。常に新しい環境を使っていける環境の人はいいですけど、そうでない人には厳しいですねえ。
>>74
ちょっと思い出して Quartz Comporser で作ったコンポジションを透明ウインドウにのせるサンプル
があったのでひっぱりだしてきてやってみました。それは見事にちらつかずに滑らかに動いていました。
Quartzの問題なのか、Core Animation が Quartz とお話している部分の問題なのか、OpenGL 部分なのか。
その辺のdeepな内部の実装についてはさっぱりわかりませんねえ。
76:43
09/05/14 17:07:17 jO61i7Cr0
どなたか WWDC 09 参加される方でこの問題にご興味のある方は是非是非質問をぶつけてきていただきたいです><
77:名称未設定
09/05/14 17:53:28 aNVF999j0
描画が別スレッドで行われているのが原因だと思われ。
QuartzComposerのベースが同じなら、メインスレッドで描画する方法があるという事なんだろうか?
78:名称未設定
09/05/14 21:25:12 pfNBB2ufi
>>77
まるっきり別アプリなので同一スレッドで動く事は困難では?
各種描画は最終的にはOpenGLのパイプラインに押し込まれ(その後H/Wレンダラ
なりにわたる)処理される約束に現在の実装ではなっているはずなので、そこ
でなんとか協調するための手段があるはずなんですよね、QuartzComposerなん
かはそのへんまじめにやってる(というか、立ち位置がOpenGLに近い)っぽく
てCAはパフォーマンス優先になっているような。
パフォーマンスを多少犠牲にしても同期を取るモードがあっても良さそうなの
で、そのへんが担当者に聞けると、、、
私も残念ながらいろんなあおりを受けて今年はおやすみ。
79:名称未設定
09/05/14 22:31:24 aNVF999j0
>>78
何を作りたいか分からないけど、OpenGLで書いた方が早いんじゃない?
80:名称未設定
09/05/14 22:58:50 vR6rv+/10
>>78
CAってbeam syncって概念ないのかい?
81:名称未設定
09/05/14 23:41:46 kzoneQIR0
>>78
>各種描画は最終的にはOpenGLのパイプラインに押し込まれ処理される約束に現在の実装ではなっているはずなので
Quartz DebugでQuartz Extreameをoffにしても、ちらつきが収まらないので(多少ちらつく頻度が少なくなるような気はするが)、原因は別のところにあるのではないか?
82:名称未設定
09/05/15 00:16:10 98daYchR0
CALayerに設定されているCIFilterを外すと、ちらつかなくなるね。
あと、ウインドウにタイトルバーを付けて、ウインドウをドラッグで動かすと、背景が静止画の場合であってもちらつくねぇ。
Core Image側に問題があるのかな? どちらかというと。
83:名称未設定
09/05/15 00:26:31 LM6j+XPe0
Quartz Compositorじゃね?
84:名称未設定
09/05/15 23:11:26 Di8dS7Xy0
サンプルコードで
BOOL b = NO;
b |= [hoge hage];
というようなのを見かけました。これはどういう意味になるのでしょう?
Cocoaの教本には載ってませんでしたが、、。
85:名称未設定
09/05/15 23:13:50 Vreasx71P
cの論理演算子を調べてみては
86:名称未設定
09/05/15 23:19:47 rNZ6L9VR0
ホゲハゲ
87:名称未設定
09/05/15 23:20:23 Di8dS7Xy0
&& || != などは分かるのですが、、どうしても|=が出てきません。
記号だけのものを探すのって大変ですね。
88:名称未設定
09/05/15 23:21:54 Di8dS7Xy0
すいません、C言語 演算子でググったら一覧みたいなのが書いてあるサイトをいくつか見つけられました。
見て勉強してみます。
89:名称未設定
09/05/15 23:34:04 IXApvD0U0
>>84
正直そのサンプルコードは良くないとおもう
| はビット単位 OR だから、 BOOL に適用するのは良くないべ。
90:名称未設定
09/05/15 23:38:16 Di8dS7Xy0
マジですか、Appleのサンプルコードだからって鵜呑みにしちゃいけないんですね。
なんかショック。
91:名称未設定
09/05/15 23:48:37 IXApvD0U0
>>90
バグってるわけではないがバッドノウハウだと思います。
NO が 0 で、YES が 1 なのは Cocoa では決まってるので、
まあビット単位 OR | も論理 OR || も一緒ですが、
Cocoa でない C のコードでは、0 が偽、0以外の整数は全て真と
解釈されることになってるので、
論理演算とビット演算の結果が異なることもありえますので...
92:名称未設定
09/05/16 07:44:18 nOx+3fs60
if(Cond)ならどっちでも通じる。分かっててやる分にはいいんじゃね。
あんまり好きじゃないけど。
93:名称未設定
09/05/17 00:35:50 vTJjRQm+0
分かりにくかったら済みません。
TwitterPodやSnowRabbitみたいなログ表示をするには
どうすればいいでしょう?折り返しのある文字列を綺麗に表示したいのです。
NSTableViewとかNSTextFieldCellあたりを探してみたのですが
見つかりませんでしたorz
自前で作るにしても方法が思いつきません。
94:名称未設定
09/05/17 00:50:38 ARuKMIRg0
>>93
NSTextFieldCellのLayoutをWrapsに設定してみると、どうでしょう?
Title, Placeholder, alignment, Border, Layout
と並んでいるやつです
95:名称未設定
09/05/17 00:56:53 ARuKMIRg0
捕捉、もっと下の方にあるLine BreaksもWord Wrapに設定する必要ありますね。
さらに複数行を表示するので、NSTableViewの行の高さ等もちょっと調整
する必要がありそうですけれど
96:名称未設定
09/05/17 15:17:22 dcs8lUAz0
わざわざNSTableViewに吐く理由は?
ただのエディットビューで十分じゃないかな...
97:名称未設定
09/05/17 23:42:48 Fgw9CMGw0
>>96
上げられてるソフトを確認すれば分かるかと。
98:名称未設定
09/05/18 00:21:17 Stz5fwHx0
サードパーティのアプリなんて共通認識にあるわけないし、回答者がわざわざ探しにいけとでも?
という疑問は感じる
99:名称未設定
09/05/20 04:41:57 yuP2p8H10
にるぽ
100:名称未設定
09/05/20 07:16:13 XegvAAnYi
Cocoa100%(σ・∀・)σゲッツ!!
101:名称未設定
09/05/20 08:17:42 T3yMgwWc0
>>100
何かの書籍?個人ブログしかヒットしないんだけど
102:名称未設定
09/05/20 09:09:14 3yEx7CxS0
>>101
ゆとり乙
103:名称未設定
09/05/20 09:28:53 T3yMgwWc0
>>102
俺もそこそこいい歳だよおっさん
104:名称未設定
09/05/21 01:12:24 J06HCPEy0
CALayerについて質問です
URLリンク(journal.mycom.co.jp)
上記ページの下部にあるサンプルコードを例に挙げます。
このサンプルコードをそのままビルドすると正常に画像が表示されるのですが、
- (void)awakeFromNib
{
//...
}
- (IBAction)doAnimation:(id)sender
{
}
となっているのを
- (void)awakeFromNib
{
}
- (IBAction)doAnimation:(id)sender
{
//...
}
とごっそり移動しました。つまりCALayerの設定をawakeFromNibからIBActionでの実行に変更しました。
これをビルドして実行すると画像がちゃんと表示されません。
なぜこのようなことが起きるのかさっぱり分かりませんので教えてください。よろしくお願いします。
105:名称未設定
09/05/21 02:41:54 gvzv7DBV0
>>104
Viewのアウトレットは繋がってる?
ViewにsetNeedsDisplay:は送ってみた?
106:名称未設定
09/05/21 03:29:48 J06HCPEy0
>>105
はい、つながっています。ViewへのsetNeedsDisplay:もLayerへのsetNeedsDisplayも送ってみました。
awakeのタイミングでやると正しく表示されるんですよね。IBActionでやるとCALayerのbackgroundColorは正しくセットされるのですが、contentsに画像を設定した時におかしくなります。
Layer周りをいろいろ実験してておかしいなと思い、シンプルなソースを探してきて試してみたところ同様にうまくいかなかったのでさっぱり状態になり質問させてもらいました。
良かったら上記のサンプルコードで試してみてください。
107:名称未設定
09/05/21 03:38:44 gvzv7DBV0
>>106
やってみた。
awakeFromNibのままですら正常に表示されなかったw
こりゃ元のコードに問題がありそうだね。暇があったら直してみる。
108:名称未設定
09/05/21 04:31:29 J06HCPEy0
>>107
んー、なぜ結果が違うのでしょう。ちなみにOSは10.5.7で試しました。
夜になると思いますが、時間あればAppleのサンプルコード探して試してみてまた報告しようと思います。
109:名称未設定
09/05/21 11:37:15 dRp23ibU0
すいません。iPhoneアプリ開発初心者です。
なので教えてほしいのですが、
今苦戦しているのは別クラスからの画像の処理です。
+drawImageというクラスに画像名を飛ばしそこにあるImageやViewを使って
表示させたいのですが、状態としては警告が出ます。
警告文的にはaddSubviewが+addSubviewが何たら・・・
と言われます。
なので[??? addSubView];←ここに何を入れれば良いのかが判りません。
drawImageが入ってるのはGdrivControllerです。
これをMainViewとして使ってます。
110:名称未設定
09/05/21 11:38:42 gvzv7DBV0
>>109
はっきり言ってそのレベルじゃiPhone開発は無理。CocoaどころかCの基礎とオブジェクト指向から勉強し直してこい。
あと日本語と英語も。
111:名称未設定
09/05/21 12:01:01 lD5cj5l2i
最近>>109みたいなやつ沸くけどただの荒らしやないのん?
それとも俺が知らんだけでこんなのが現実に結構いるのん?
112:名称未設定
09/05/21 12:06:55 R3inFz3N0
>>109
Xcodeスレで回答もらってるのにシカトしてマルチするの?
113:名称未設定
09/05/21 12:20:19 cyO5iFqa0
>>111
>>110も煽り過ぎだと思うが、質問するレベルにもなってないのは確かだな。
2chで聞きまくるより、一冊でも入門書を読んだ方が本人のためになる。
114:名称未設定
09/05/21 12:36:49 dRp23ibU0
すいませんJava開発しか経験が無いもので・・・
一応ObjectiveC2.0やCocoa、クックブックは読んでるんですが・・・
115:名称未設定
09/05/21 12:47:30 cyO5iFqa0
>>114
Javaで開発できるならObj-Cが理解できない事は無いと思うけど…。
単に文法を理解してないという事なら、なおさら入門書を最後まで読んでからにした方が良いと思う。
116:名称未設定
09/05/21 13:18:45 Zr/4CmfOi
>>114
質問するならまず他人に伝わるように文章を書けるようになってくれ。
「飛ばす」「入れる」「入ってる」等の曖昧で私的な定義の言葉じゃなく、技術書等で使われている一般に通じる用語を使う。
警告が出るなら「〜なんたら」で済まさずにその警告をそのまま伝える。
用語は正しく使う。+drawImageとやらはクラスではなくクラスメソッドのことではないか?
自分で試してみたことをはっきりと伝える。日本語で伝えるのが難しいならソースコードを添える。
そもそも、あなたがやりたい事が分からない。最終的に何をしたいのか5W1Hを明確にして記述する。
これらが出来ないなら書き込んでも誰も答えられないです。
117:名称未設定
09/05/21 13:24:56 LZUURm740
>警告文的にはaddSubviewが+addSubviewが何たら・・・
「何たら」と書く時点でプログラマじゃないよ。
エンドユーザーの「なんかエラーが出るんですけど」と一緒。
118:名称未設定
09/05/21 13:47:20 A08ud0la0
>>114
> すいませんJava開発しか経験が無いもので・・・
とても他の言語で開発経験があるとは思えないぞ>>109では。
それくらい意味不明。
+drawImageの中で -addSubview使ってるってこと?
画像名を飛ばすって何?画像名を引数で渡すのか?
エスパーしてみたが、とりあえずマルチしといてシカトは良くない。
119:名称未設定
09/05/21 13:59:18 RrJzICdh0
兵庫県か大阪府の小学生じゃないの?
いま、臨時休校だし。
120:名称未設定
09/05/21 13:59:58 cyO5iFqa0
>>118
理屈じゃない!感じるんだ!!
121:名称未設定
09/05/21 14:21:12 A08ud0la0
>>120
 ̄ ̄ ̄ ̄-----________ \ | / -- ̄
--------------------------------- 。←画像名
_______----------- ̄ ̄ ̄ ̄ ̄
∧ ∧ / / | \ イ
( ) / ./ | \ /
_ / )/ / | /|
ぅ/ / // / | / .|
ノ ,/ /' / |│ /|
_____ ,./ /∠__| / .─┼─ |
(_____二二二二) ノ (\__,/| / ┼┐─┼─
^^^' ヽ, | | /. ││ .│
122:名称未設定
09/05/21 14:38:24 dRp23ibU0
GdrivControlerというファイルにdrawImageという
画像を表示させる処理を置いています。
画像を表示させたいときは画像の名前を[GdrivController drawImage:@"title.png"];
という風にしています。
このdrawImageの中身は
+(void)drawImage:(NSString*)name{
UIImage* img = [UIImage imageNamed:name];
UIImageView* dview = [[UIImageView alloc] initWithImage:img];
このあとの表示部分で警告やエラーになります。
入力してるのが[GdrivController.view addSubview:dview];
だと syntax error before `.` token.
[GdrivController addSubview:dview];だと
'GdrivController' may not respond to `+addSubview`というエラーになります。
}
123:名称未設定
09/05/21 14:43:42 nHVTUb140
>>122
× +(void)drawImage:....
○ -(void)drawImage:....
とか?
124:名称未設定
09/05/21 14:52:07 8ouOVGBPi
>>122
やればできるじゃないか。
まず、
>入力してるのが[GdrivController.view addSubview:dview];
>だと syntax error before `.` token.
>[GdrivController addSubview:dview];だと
>'GdrivController' may not respond to `+addSubview`というエラーになります。
これらは両方とも、インスタンスに送信すべきメッセージをクラスに送っていることが間違いです。
クラスとインスタンスの違いは分かりますか?
クラスメソッドとインスタンスメソッドの違いは分かりますか?
インスタンスの作り方は分かりますか?
たのcocoでも詳解ObjC 2.0でも、オブジェクト指向の基本を解説してる部分を読み直してください。
125:名称未設定
09/05/21 14:54:10 cyO5iFqa0
>>122
for (int i = 0; i<100; i++) {
NSLog(@"入門書を読んでから出直せ。");
}
126:名称未設定
09/05/21 15:21:51 8ouOVGBPi
>>122
あとGdrivControllerってのは何者?
もしUIViewControllerのサブクラスで、IBなりどこかでインスタンス化されてるものなら、
+drawImage:とやらをインスタンスメソッドにしたうえで
GdrivControllerのインスタンスに-drawImage:を送信するようにして、
先述のエラーの出ているところを
[self.view addSubView:dview]
とすれば多分いいんじゃないかと思うよ。
127:名称未設定
09/05/21 15:23:36 RrJzICdh0
クラスメソッド
Obj-C 頭に+が付いてる
Java static が付いてる。
インスタンスメソッド
Obj-C 頭に-が付いてる。
Java staticが付いてない
Javaの方は大味な説明だけど、こういうことです。
インスタンスを生成してそのインスタンスに対してしか実行できないのがインスタンスメソッドです。
128:名称未設定
09/05/21 15:29:44 cyO5iFqa0
まさに「Cocoaはさっぱり!!!」
129:名称未設定
09/05/21 15:32:08 BiCFA5Fu0
物事がさっぱりだというのはその物事をある程度勉強してみてはじめて使う言葉ですよ。
入門事項すら勉強していない人が「あれはさっぱりだ」と言うことはできません。
130:名称未設定
09/05/21 15:33:00 cyO5iFqa0
>>129
Cocoaは(奇麗)さっぱり(忘れた事にする)!!!
131:名称未設定
09/05/21 16:08:59 dRp23ibU0
GdrivControllerはMainView.xibに使用しているUIViewControllerで作ったもので、
ViewにはGdrivというクラスを使っています。
132:名称未設定
09/05/21 16:33:35 gvzv7DBV0
>>131
だったらGdrivControllerの、しかもクラスオブジェクトがaddSubView:というメソッドを持ってない事くらい分かるでしょ。
addSubView:はUIViewのインスタンスメソッドなんだから。
133:名称未設定
09/05/21 16:52:43 cyO5iFqa0
教える側が基礎を説こうとしているのに、聞く側が回答しか求めていない。
これでは何度説明しても理解できるわけないよ。
134:名称未設定
09/05/21 18:27:52 dRp23ibU0
GdrivControllerにUIViewで作ったGdrivのクラスを追加している場合に
[GdrivController.Gdriv addSubview:dView];とした場合もsyntaxエラーになります。
なので、
UIView* gView = [[Gdriv alloc] initWithFrame:CGRectMake(0,0,50,50)];
[gView addSubview:dView];にするとエラーは無くなりますが、シミュレーターには表示されません。
135:名称未設定
09/05/21 18:57:16 JiQiRyUI0
>>134
もう一度 >116 をよみかえしてくだしあ。あと、多分今のあなたの技術では
動くアプリは出来ないでしょう。Java で開発していて、クラスメソッドと
インスタンスメソッドが分からないなら、一からオブジェクト指向言語の
概念から、さらにC、Cocoa を勉強した方が良いです。多分メモリ管理も。
/* 俺もJavaからきたけど、IBのおかげでUIまわりはJavaよりも簡単だぞ。*/
136:名称未設定
09/05/21 19:00:14 K6oJPq9D0
,.-─ ─-、─-、
, イ)ィ -─ ─- 、ミヽ
ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , -─ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
V;;;::. ;ヲヾ!V ー '′ i ー ' ソ
Vニミ( 入 、 r j ,′
ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ
ヽ ヽ -''ニニ‐ /
| `、 ⌒ ,/
| > ---- r‐'´
ヽ_ |
ヽ _ _ 」
ググレカス [ gugurecus ]
(西暦一世紀前半〜没年不明)
137:名称未設定
09/05/21 19:24:38 KSjLlpNRi
>>134
クラス名の次にドットが来ることは無いってば。常に文法エラー。
さらにドットの左側にクラス名が来ることもあり得ない。
ドットシンタックスについては、詳解ObjC 2.0の「キー値コーディング」の章を熟読して理解できてから使ってくれ。
138:名称未設定
09/05/21 19:39:58 R3inFz3N0
>>134
作りたいアプリの仕様を書けよ
親切な誰かが請け負ってくれるかもしれないからさ
こんな無意味な問答を続けるよりはよっぽど建設的だぞ
139:名称未設定
09/05/21 19:46:27 lOzpjpIa0
>>135
JavaじゃなくてJavaScriptでした、というオチに100ペリカ
140:名称未設定
09/05/21 21:02:45 gvzv7DBV0
>>108
あれからちょっと試してみたんだが、そのサンプルのままだと画像が白い塗りつぶしになってしまって表示されなかった。
ところが画像ファイルを"/Library/Desktop Pictures/Tiles Blue.jpg"にすると正常に表示された。doAnimation:のほうにごっそり移しても。
俺の方の問題はつまり、画像ファイルの読み込みにあったらしい。Earthファイルもあるのだが、サイズかなにか制限でもあるんだろうか。
141:名称未設定
09/05/21 21:37:12 JiQiRyUI0
>>139
そうかもねぇw
>>137
>クラス名の次にドットが来ることは無いってば。常に文法エラー。
ドットシンタックスと[ ]の混在が嫌いだから知らんかった。調べてみたら、
@interfaec Hoge :NSObject @end
@implementation
static id piyo = @"piyo";
+ (id) fuge { return @"fuge"; }
@end
に対して、Hoge.fuge は仰る通り駄目。でも、[Hoge valueForKey:@"fuge"]
って有効なんだね。クラスにKVCなんてやった事無かったけど面白い。
ドットシンタックスが駄目なのは、コンパイラのみのチェックなんかな?
[Hoge valueForKey:@"piyo"] … ×
class_getClassVariable([Hoge class], "fuge") … ×
class_getClassVariable(object_getClass(objc_getClass("Hoge"))), "fuge") … ×
class_getClassVariable(object_getClass(objc_getClass("Hoge"))), "isa") … ○
やっぱり、isa しか入ってないのか。入れる方法ってあるんかな?
142:名称未設定
09/05/21 22:00:16 lWvBtsqMi
>>141
Hoge *hoge = [Hoge valueForKey:@"alloc"].init;
143:名称未設定
09/05/21 22:09:52 JiQiRyUI0
>>142
+alloc が定義されていて(当然だが)、インスタンスのidが返ってきてたら、
コンパイル成功して当然でしょ?init はインスタンスに対して送られてるのだから。
何が言いたいのか分かりません。
144:名称未設定
09/05/21 23:49:55 J06HCPEy0
>>140
謎が解けた!
サンプルコードのメソッドの最後に
[layer setNeedDisplay];
[layer display];
[backgroundLayer setNeedsDisplay];
[backgroundLayer display];
[_view setNeedDisplay:YES];
これらを組み合わせて入れていろいろ試してみたけど、結局のところ
[_view display];
これが正解だったみたい。
ちなみに、
@"/Library/Desktop Pictures/Nature/Earth.jpg" の画像を使用した時
[backgroundLayer setNeedsDisplay]; や[backgroundLayer display];
すると画像が白塗りで表示されないけど、
URLリンク(mac.hitobashira.org)
@"/Library/Desktop Pictures/Tiles Blue.jpg" の画像を使用すると
[backgroundLayer setNeedsDisplay]; では以下のような画像に
URLリンク(mac.hitobashira.org)
[backgroundLayer display]; だとアプリがクラッシュするという事態が起きた。
デバッガ見たらCGSConvertBGR888toRGBA8888で止まってた。
他の画像ではテストしてないので、ファイルサイズか、フォーマットか何の違いに起因するものなのか分からないけど
画像によって挙動が変わるというのはCALayerの作りが甘いってことなのか?
他のLayerクラスも触ってて思ったけど、アプリのRunLoopと違うタイミングで動いてるので
生成や、特に描画のタイミングなどはしっかり理解しないと正しい制御ができないような気がする。
長くなりましたがこんなとこ。
詳しい人いたら解説お願いしたいところです。
145:名称未設定
09/05/22 00:21:34 KukDsc7l0
OpenSSHって使えますかね?
146:名称未設定
09/05/22 00:44:16 qS/6Qjqe0
>>145
何を勘違いしているのかしらんが、
Objective-C は C のライブラリは何でも使える
147:名称未設定
09/05/22 10:08:59 Hk5Td5Ah0
日記はもういいよ。iPhone板にプログラミングスレ立ててそっちでやってくれ。
基礎的なことも学んでないのにつまづく度に書き込まれたんじゃたまらん。
148:名称未設定
09/05/22 11:24:36 WFQcCVtF0
ここはCocoaスレだぞ、なんつって
149:名称未設定
09/05/22 11:26:54 M58OI3GZ0
別にいいんでねぇの?
またーり推奨しとく。
150:名称未設定
09/05/22 11:33:52 WFQcCVtF0
>>149
>>147はiPhone開発スレの誤爆だと思われ
151:名称未設定
09/05/26 17:04:46 mpU7elWh0
今 Xcode で deployment (release) と development のどちらでコンパイルされているかによって
処理を振り分けることはできるでしょうか?
例えば開発ビルドのみ NSLog() してみたいという用途です。
# Xcode スレの方が適切でしょうか?
152:名称未設定
09/05/26 17:22:23 Q2hth1EJ0
Release用ビルド設定のPreprosessor MacrosにNDEBUGを設定して
#ifndef NDEBUG
NSLog(@"Debug Mode");
#endif
でいけるとおも。
153:名称未設定
09/05/26 18:52:52 lNXmn4af0
>>152
NDEBUGというマクロ名は意図的に選んでるの?
154:名称未設定
09/05/26 18:59:40 ANgsl3SV0
assert.h 関係ですね
155:名称未設定
09/05/26 20:09:00 Q2hth1EJ0
>>153
>>154さんご指摘の通りです。
自前で用意してもいいんですが、慣例的に利用されているようなので
特に理由がない限りNDEBUGマクロ使ってます。
Cocoaネタで言うと、NSAssert[1-5]()なんかは
NS_BLOCK_ASSERTIONSって独自のマクロ定義してますね。
以下補足です。
ログ程度で毎回 #ifndef NDEBUG ... #endif は面倒なので
/* MyDebug.h */
#ifndef NDEBUG
#define MyLog(fmt, ...) NSLog(fmt, __VA_ARGS__)
#else
#define MyLog(fmt, ...)
#endif
なんてのがよく使われてるみたいです。
ちなみに__VA_ARGS__は、C99の機能なので
ビルド設定の変更もお忘れなく。
長文失礼。
156:名称未設定
09/05/26 20:13:50 8gfXRQlR0
>>152
あとは
#ifndef NDEBUG
#define NSLog(...)
#endif
でNSLog()自体無効にするとか。
157:151
09/05/26 21:07:20 Hh/s6JXoP
>>152
>>155-156
やってみたところうまく切り分けて動作しました。
ありがとうございました。
NSLog自体を無効にするというのも面白いですね。今まで残していたものも全てユーザに見せないようにできるという楽でいい方法だと思いました。
158:名称未設定
09/05/27 08:12:40 5crTst2N0
>>157
重要な NSLog は残しておくのも吉だとおもう
フリーウェア書いてるが、それのおかげでバグがあったときに
ユーザーさんから log file を送ってもらって
バグが究明出来たことが何回かあるし。
Apple 製のソフトだって大量にコンソールにログをだしてるから
ぼくらも多少ログを吐いてもいいんじゃないかと。
159:名称未設定
09/05/27 13:30:26 rQRiXzwK0
重要な物ならいいけど、ディスクアクセスが発生するので出来るだけ避けて欲しい。
「なんかもっさりだな」って思ったら毎秒ぐらいのペースでログが出てて、連続
ディスクアクセスのパフォーマンスが落ちてたとかある。
まあ、かな漢字変換のディスクアクセスがそんな感じなんだが、、、
160:151
09/05/27 20:18:45 coL084HnP
なるほど確かに重要な情報は残しておきたいし、ディスクアクセスの妨げになるような出力も避けるべきですね。
勉強になりました。
161:名称未設定
09/05/27 20:23:41 DNUe0f2p0
Preview.app なんかがやっているのですが、
オープンしたファイルが Finder やら mv などでリネームされても
アプリがアクティブになったときにリネームをアプリが即座に知って
ファイル名表示を更新しているのです。
ファイルが別のディレクトリに移動されてからリネームしてもも同様にすぐ反映しています。
フルパスではない何かinodeのようなものか何かを保持しているのだと思うのですが、
これは Cocoa 的にはどのクラスやフレームワークを使えば実現できるのでしょうか。
また即座に通知されるのはキー値監視のようなことがファイルに対しても出来るのでしょうか。
162:名称未設定
09/05/27 21:10:08 AJ4glpaE0
>>161
それは確かCocoaだけでは実現できなかったと思います。
CFURLGetFSRefというCarbonの関数を使ってファイルへのエイリアスを取得し、
それをまた実パスに戻したりとかちょっと手間のかかる事をやります
163:名称未設定
09/05/27 22:03:43 DNUe0f2p0
>>162
ありがとうございました。
CFURLGetFSRef 周りの Carbon の関数やFSRefなどを調べてそのような処理を書いてみます。
(すみません、Cocoaではスレ違いだったのですね。)
164:名称未設定
09/05/27 22:18:18 AJ4glpaE0
>>163
Cocoaのメソッドだけでこなせない時にCarbonのコードを内包するのは
よくやられる手法で、まんざらスレ違いというわけでもなかったり(笑)
できればそろそろNSFileManagerあたりがサポートしてくれるとありがたいな〜と
(もしかすると既にあったりして...)
165:名称未設定
09/05/27 22:28:36 BSyot79b0
>>163
NDAlias等のラッパーを利用するのが、簡単でしょう。
166:名称未設定
09/05/31 09:34:37 LG4aWmHm0
WebViewでRealAudioのファイルを再生したいのですが
同じHTMLソースをsafariでは正常に再生できるのに
自分で作っているものではRealAudioのプラグインは表示される
ものの再生ボタン等がディスエーブルになってしまって再生できません
WebPreferencesのarePlugInsEnabledはYESを返してくるのですが
他に何か設定を変えなければならないんでしょうか?
167:163
09/06/01 16:25:01 I59S1qHp0
>>164
確かに狭義の Cocoa スレってわけにはいかないですね。
すっかり忘れていましたが昔 ProcessSerialNumber のためだけに Carbon フレームワークを追加したことがありました。
>>165
これはすばらしいですね。NSCoding などにも準拠していて Core Data にもすぐ使えて便利そうです。
即座にプロパティを NSAlias に変更しました。
ありがとうございました。
((BOOL)setPath: は (void)setPath: じゃなきゃ KVC (?)に対応じゃないよとランタイム(?)から NSLog が出たりしましたがそこは書き換えればすみました)
168:名称未設定
09/06/01 20:36:17 z40AA1IZ0
>>167
165です。
NDAliasを書き換える必要はないでしょう。
たとえば、
- (NSString *)path
{
[self willAccessValueForKey:@"path"];
return [[self alias] path];
[self didAccessValueForKey:@"path"];
}
- (void)setPath:(NSString *)newPath
{
[self willChangeValueForKey:@"path"];
[self setAlias:[NDAlias aliasWithPath:newPath]];
[self didChangeValueForKey:@"path"];
[qtmovie release];
qtmovie = nil;
imageVersion++;
}
とすれば良いのです。Pathを短時間に大量に、あるいは何度も変更しない限りperformanceに
悪影響はないと思います。
他のアプリでの変更を反映させるには、適当なNotification(NSApplicationDidBecomeActiveNotification,
NSWindowDidBecomeMainNotification etc)を受けて、path valueにアクセスすれば良いでしょう。
[object path], [objects valueForKey:@"path"]
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5003日前に更新/139 KB
担当:undef