奇怪的是`isKindOfClass`行为

Luk*_*ice 2 iphone cocoa-touch objective-c ipad ios

参考下面的代码,我发现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!");
Run Code Online (Sandbox Code Playgroud)

控制台日志:

2011-01-20 10:44:29.746 ApplicationName [906:307]'文件'='文件'?
2011-01-20 10:44:29.756 ApplicationName [906:307]不!

以前有人遇到过这个吗?

Cos*_*que 5

[parent isKindOfClass:[Document class]]应该返回YES.[parent class]是一个类对象,很可能不是类Document的实例.

这就是为什么NSLog()打印类名(来自文档):

+ (NSString *) description

NSObject对此方法的实现只是打印类的名称.