美文网首页A知识点2
iOS开发之基础扫盲-区别方法isKindOfClass、isM

iOS开发之基础扫盲-区别方法isKindOfClass、isM

作者: brilliance_Liu | 来源:发表于2017-02-22 17:55 被阅读802次
    //1.首先申明 四个类 A>B>C>D ,继承关系 A继承B,B继承C,C继承D。即D是最顶层的父类,A是最基层的子类。
    A *a = [[A alloc]init];
    
    2.isKindOfClass(对象方法)
    
    [a  isKindOfClass [A Class]]  //return YES
    [a  isKindOfClass [B Class]]  //return YES
    [a  isKindOfClass [C Class]]  //return YES
    [a  isKindOfClass [D Class]]  //return YES
    
    3.isMemberOfClass(对象方法)
    [a  isMemberOfClass [A Class]]  //return YES
    [a  isMemberOfClass [B Class]]  //return NO
    [a  isMemberOfClass [C Class]]  //return NO
    [a  isMemberOfClass [D Class]]  //return NO
    
    4.isSubclassOfClass(类方法)
    [A  isSubclassOfClass [A Class]]  //return YES
    [A  isSubclassOfClass [B Class]]  //return YES
    [A  isSubclassOfClass [C Class]]  //return YES
    [A  isSubclassOfClass [D Class]]  //return YES
    
    5.总结
    综上看来,isSubclassOfClass和isKindOfClass的作用基本上是一致的,只不过一个是类方法,一个是对象方法。
    isMemberOfClass 筛选条件更为苛刻,只有当类型完全匹配的时候才会返回YES。
    
    
    

    相关文章

      网友评论

        本文标题:iOS开发之基础扫盲-区别方法isKindOfClass、isM

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