这个问题在这里已经有了答案:
Best Answer-推荐答案 strong>
NSArray
、NSDictionary
、NSString
和
NSData
是类簇。这个概念在
documentation ,这意味着您不会获得直接实例
为那个类(class)。
由于要处理的“数据”多种多样,该类具有内部
专门的子类;当您创建一个实例时,它将是
确定这些内部子类中的哪个是最佳选择,并且
然后,您的对象将成为该子类的实例(而不是 NSData
本身)。
在这种情况下,如果您需要检查,请使用 isKindOfClass:
这将
对子类也是如此。
NSDate *date = [NSDate date];
if ([date isKindOfClass: [NSDate class]]) {
/* ... */
}
编辑:
再举一个例子,调用 NSStringFromClass([obj class])
在这些对象中:
NSData * data = [NSData data];
NSData * str_data = [@"string" dataUsingEncoding:NSUTF8StringEncoding];
NSNumber * n_bool = [NSNumber numberWithBool:YES];
NSNumber * n_int = [NSNumber numberWithInt:42];
NSArray * array = [NSArray array];
结果:
_NSZeroData
NSConcreteMutableData
__NSCFBoolean
__NSCFNumber
__NSArrayI
关于ios - NSDate isMemberOfClass : [NSDate class] returns false?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/32465816/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) |
Powered by Discuz! X3.4 |