1,这里先比较 俩个的对象方法,也就是减号方法
isMemberOfClass 是直接判断俩边所属的类对象是否相等。源码展示
isKindOfClass 是遍历当前类以及它的父类 和传入类的类对象是否相等。源码展示
2,然后比较俩者之间的类方法
isMemberOfClass 判断当前对象ISA指针指向元类(因为本身就是类对象)是否传入的类型相等,简而言之就是判断当前对象的元类是否是传入对象相等。源码如下
isKindOfClass 判断当前类ISA指针指向的元类(因为本身就是类对象以及寻找父元类(遍历))是否等于传入的类,如果传入的是[ NSObject class]的话,是永相等的,因为根元类就是NSObject,根元类的superclass指向NSObject。源码如下