NSDate *date = [NSDate date];
if ([date isMemberOfClass: [NSDate class]]) {
// Not executed.
}
答案 0 :(得分:4)
类似于NSArray
,NSDictionary
,NSString
和
NSData
是类集群。这个概念在中更好地解释了
documentation,这意味着您不会获得直接实例
对于那个班级。
由于要处理的“数据”种类繁多,所以该类具有内部功能
专门的子类;当你创建一个实例时,它将是
确定哪些内部子类是最佳选择,以及
那么你的对象将是该子类的一个实例(不是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
答案 1 :(得分:0)