iOS isKindOfClass 和 isMemberOfClass 方法区别

1,这里先比较 俩个的对象方法,也就是减号方法

isMemberOfClass 是直接判断俩边所属的类对象是否相等。源码展示


isMemberOfClass对象方法

isKindOfClass 是遍历当前类以及它的父类 和传入类的类对象是否相等。源码展示


isKindOfClass对象方法

2,然后比较俩者之间的类方法

isMemberOfClass 判断当前对象ISA指针指向元类(因为本身就是类对象)是否传入的类型相等,简而言之就是判断当前对象的元类是否是传入对象相等。源码如下


isMemberOfClass类方法

isKindOfClass 判断当前类ISA指针指向的元类(因为本身就是类对象以及寻找父元类(遍历))是否等于传入的类,如果传入的是[ NSObject class]的话,是永相等的,因为根元类就是NSObject,根元类的superclass指向NSObject。源码如下


isKindOfClass类方法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容