为什么-isMemberOfClass:不在这里工作?

ope*_*rog 4 cocoa objective-c foundation

NSMutableArray *arr = [NSMutableArray arrayWithCapacity:3];

if ([arr isMemberOfClass:[NSMutableArray class]]) {
    NSLog(@"YEP!!");
} else {
    NSLog(@"NO!!");
}
Run Code Online (Sandbox Code Playgroud)

我总是"不!" 在控制台.我尝试使用Array,NSNumber,NSString.所有这些似乎都不起作用.真奇怪.当我从文档中得到它时,如果我再次测试作为测试对象的对象的类,则此方法应该返回YES.我使用的是Foundation.h,而不是Core Foundation(如果它有任何不同之处).

Geo*_*che 9

您需要使用isKindOfClass:respondsToSelector:作为NSArray与类似的类集群 -你创建他们时实际获得的子类.有关方面的一些有趣内容,请参阅此答案.