isKindOfClass和isMemberOfClass的用法

isKindOfClass和isMemberOfClass的用法,见代码注释

类LittleCat继承自Cat

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    Cat * cat1 = [[Cat alloc] init];
    LittleCat * lcat1 = [[LittleCat alloc] init];
    
    //判断是否是当前类的实例对象,或者是否是当前类的子类的实例对象
    BOOL isornot1 = [cat1 isKindOfClass:[Cat class]];
    //判断是否是当前类的实例对象
    BOOL isornot2 = [cat1 isMemberOfClass:[Cat class]];
    BOOL isornot3 = [lcat1 isKindOfClass:[Cat class]];
    BOOL isornot4 = [lcat1 isMemberOfClass:[Cat class]];
    
    NSLog(@"%i", isornot1);
    NSLog(@"%i", isornot2);
    NSLog(@"%i", isornot3);
    NSLog(@"%i", isornot4);
    
}
输出:

2015-11-04 14:40:40.422 02-runtime[3369:86418] 1
2015-11-04 14:40:40.423 02-runtime[3369:86418] 1
2015-11-04 14:40:40.423 02-runtime[3369:86418] 1
2015-11-04 14:40:40.423 02-runtime[3369:86418] 0
由第三行输出可知,isKindOfClass可以判断是否是当前类子类的实例对象,由第四行输出可知,isMemberOfClass不能判断

你可能感兴趣的:(ios,ismemberofclass,isKindOfClass)