Objective-C [ObjC part:4];
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
650:デフォルトの名無しさん 09/12/15 02:51:37 valueForKey: はまずアクセサを探すはずなのにおかしいね。 @synthesize foo; やって、 method_exchangeImplementations(class_getInstanceMethod(self, @selector(foo)), class_getInstanceMethod(self, @selector(getter))); method_exchangeImplementations(class_getInstanceMethod(self, @selector(setFoo:)), class_getInstanceMethod(self, @selector(setter:))); とかやるとちゃんと機能したけど、それは君の望むことじゃないか。 651:デフォルトの名無しさん 09/12/15 10:25:12 class_addMethod(cls, sel, imp, types) の中の、types が間違ってるから。 typese は(リファレンスで確認してね)、"返り値", "self", "_cmd", "引数..." なので、 class_addMethod(self, NSSelectorFromString(getterName), getter, "@@:"); // ×"@:" class_addMethod(self, NSSelectorFromString(setterName), setter, "v@:@"); // ×"@:@" とやると動く。 652:デフォルトの名無しさん 09/12/15 10:38:59 ついでに。+load で +synthesizeSetterGetter: を呼ぶとNSAutoreleasePoolがまだ できてないタイミングなので、コンビニエンスコンストラクタを使うとリークする。 setterName = [NSString stringWithFormat:..]; の所。alloc + init + release を 使おう。それか、+load でやる代わりに +initialize で呼ぶとpoolが出来た後なので コンビニエンスコンストラクタが使える。(分かった上でのサンプルならごめんよ)
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5394日前に更新/248 KB
担当:undef