相关疑难解决方法(0)

- [NSObject isMemberOfClass:]方法有用吗?

这是我写的一个小测试程序:

#import <Foundation/Foundation.h>

int main(int argc, char **argv) {   
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSArray *arr = [NSArray array];
    printf("Arr isMemberOfClass NSArray: %d\n", [arr isMemberOfClass:[NSArray class]]);
    printf("Arr isKindOfClass NSArray: %d\n", [arr isKindOfClass:[NSArray class]]); 

    [pool release];
    return 0;
}  
Run Code Online (Sandbox Code Playgroud)

它的输出:

$ ./ismemberof   
Arr isMemberOfClass NSArray: 0   
Arr isKindOfClass NSArray: 1   
Run Code Online (Sandbox Code Playgroud)

-isMemberOfClass:任何Foundation类中的方法有用吗?我理解这可能会为我子类的类提供所需的结果,但对于基础类 - 我发现我的arr变量的结果是非直观的.之所以会发生这种情况,是因为NSArray不是一个具体的类,而是一个抽象类,并且在引擎盖下NSArray实际上是NSCFArray的具体实例?

cocoa objective-c

10
推荐指数
3
解决办法
2万
查看次数

标签 统计

cocoa ×1

objective-c ×1