参考下面的代码,我发现isKindOfClass
无法识别一个类。
id parent = [self.tableDataSource objectAtIndex:indexPath.row];
//parent Can be either 'document' or 'folder'
NSLog(@"'%@'='%@' ?",[parent class],[Document class]);
BOOL classCheck = [[parent class] isKindOfClass:[Document class]];
NSLog (@"%@", classCheck? @"Yes!" : @"No!");
控制台日志:
2011-01-20 10:44:29.746 ApplicationName [906:307]'文件'='文件'?
2011-01-20 10:44:29.756 ApplicationName [906:307]不!
以前有人遇到过这个吗?
答案 0 :(得分:5)
[parent isKindOfClass:[Document class]]
应该返回YES。 [parent class]
是一个类对象,很可能不是类Document的实例。
这就是NSLog()
打印类名(来自文档)的原因:
+ (NSString *) description
NSObject的实现 方法只是打印的名称 类。
答案 1 :(得分:3)
你应该写:[parent isKindOfClass:[Document class]]
[parent class]将返回一个Class对象,而Class对象不是一种Document。