美文网首页
二十九、Runtime之(十二)方法isKindOfClass与

二十九、Runtime之(十二)方法isKindOfClass与

作者: yqc5521 | 来源:发表于2019-05-09 21:45 被阅读0次
    isKindOfClass与isMemberOfClass的底层实现

    1. -(Bool)isMemberOfClass:(Class)cls

    解释: 消息接收者的class是不是传入的class

    2. -(Bool)isKindOfClass:(Class)cls

    解释:for循环遍历查找,先看自己的class是不是与传入的class相同,如果不同,查找自己的父类是否与传入的class相同,如果相同,返回YES,如果依然不同,返回NO;
    概括

    消息接受者或消息接收者的父类是否属于class,换言之,消息接收者是否属于传入的class或class的子类。

    3. +(Bool)isMemberOfClass:(Class)cls

    解释: 消息接收者的元类对象是不是传入的class

    3. +(Bool)isKindOfClass:(Class)cls

    解释: 消息接收者的元类对象是否属于传入的class或class的子类
    4.面试题

    解析:
    1.NSObject的元类属于NSObject的子类(NSObject元类的父类为NSObject)。
    2.NSObject的元类不是NSObject类。
    3.MJPerson的元类不属于MJPerson类。
    4.MJPerson的元类不是MJPerson类。


    面试题

    相关文章

      网友评论

          本文标题:二十九、Runtime之(十二)方法isKindOfClass与

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