isMemberOfClass和isKindOfClass

作者: Fosen波波 | 来源:发表于2016-03-26 21:30 被阅读186次

    结论

    研究得知,isMemberOfClass和isKindOfClass之间区别是:我们可以使用isKindOfClass来确定一个对象是否是一个类的成员,或者是派生自该类的成员。例如:我们已经成NSObject派生了自己的类,isMemberOfClass不能检测任何的类都是基于NSObject类这一事实,而isKindOfClass可以。

    [[NSMutableData data] isKindOfClass:[NSData class]]; // YES
    [[NSMutableData data] isMemberOfClass:[NSData class]]; // NO
    例子1如下:
    Class1 *c1=[Class1 new];
    if ([c1 isKindOfClass: [NSObject class]]==YES) {
    printf("c1 is a kind of NSObject . \n");
    }
        return 0;
    }
    

    输出结果;
    c1 is a kind of NSObject .

    Class1 *c1=[Class1 new];
    Class2 *c2=[Class2 new];
    if ([c1 isMemberOfClass:[Class1 class]]==YES) {
    printf("c1 is Member of Class1 !\n\n");
    }
    if ([c2 isMemberOfClass:[Class2 class]]==YES) {
    printf("c2 is Member of Class2 !\n\n");
    }
        return 0;
    }
    

    输出结果:
    c1 is Member of Class1 !
    c2 is Member of Class2 !

    注:最近没更新,各种原因,谅解。

    相关文章

      网友评论

        本文标题:isMemberOfClass和isKindOfClass

        本文链接:https://www.haomeiwen.com/subject/ifwdlttx.html