美文网首页
二十九、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