我在我的项目中使用 KVC。
而且,在我的一堂课中,我写了这个属性:
@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 ...
伯克!
有人有同样的问题吗?
非常感谢你的帮助 !