私は自分のプロジェクトでKVCを使用しています。
そして、私のクラスの1つで、私はプロパティを書きました:
@property ( nonatomic, strong ) NSString *notes;
そのプロパティにNSStringオブジェクトを入れたい:
そして、値を設定する前に、宛先のクラス名をテストしたいと思います。
a = [ newContainer valueForKey:@"notes"];
if( a != nil && ![ b isKindOfClass:[ a class ] ] )
// here b is the new NSString value
その結果、xcodeはクラスが同じではないことを示します!
(gdb) po [ b class ]
__NSCFString
(gdb) po [ a class ]
__NSCFConstantString
これはそれほど重要ではなく、__NSCFConstantStringはNSStringのプライベートサブクラスであることを読みました。
しかし、私の場合、オブジェクトを更新する前に、オブジェクトのすべてのプロパティを確認する必要があります。
そして、私は自分のコードに入れたくありません:
// OK, classes aren't the same ...
// ---- BUT WE MUST test it again to know if a is a NSString and b a subclass of NSString or anything else ...
バーク!
誰かが同じ問題を抱えていますか?
あなたの助けをどうもありがとう!