Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

KVOとC++オブジェクト

タグ: Objective-C C++

Cocoaのキー値監視(KVO)は、データ型が「ポインタ」であるプロパティに対しては動作しない。
そのようなプロパティは、そもそもキー値監視の前提である「キー値コーディング(KVC)」でサポートされていない

// NSObjectを継承しているオブジェクトはKVCでそのまま使える
@property (retain) NSString* value;

// int型の値はKVCでは「NSNumberオブジェクト」になる
@property int value;

// ポインタはKVCではサポートされていない
@property int* value;

C++のオブジェクトをObjective-Cクラスのプロパティにしてキー値監視しようと目論んでいた身としては、残念な事実である。
NSValueにはvalueWithPointerがあるのだから、それでラップしてくれれば良いのに。
まあ、そんな「謎のポインタ」を渡されても、キー値監視の主な用途である「Cocoaバインディング」で役に立たないのだから、仕方ないのかも知れないが。

スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://idlysphere.blog66.fc2.com/tb.php/128-5155bae0
この記事にトラックバックする(FC2ブログユーザー)

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。