码迷,mamicode.com
首页 > 其他好文 > 详细

🔥isKindOfClass 和 isMemberOfClass

时间:2020-06-15 11:49:38      阅读:34      评论:0      收藏:0      [点我收藏+]

标签:com   解析   技术   none   ima   font   判断   就是   load   

下面代码结果如何?
// insert code here...
BOOL re1 = [(id)[NSObject class] isKindOfClass:[NSObject class]]; //1
BOOL re2 = [(id)[NSObject class] isMemberOfClass:[NSObject class]];//0
BOOL re3 = [(id)[XZPerson class] isKindOfClass:[XZPerson class]];//0
BOOL re4 = [(id)[XZPerson class] isMemberOfClass:[XZPerson class]];//0
NSLog(@" \nre1 :%hhd\n re2 :%hhd\n re3 :%hhd\n re4 :%hhd\n",re1,re2,re3,re4);
 
BOOL re5 = [(id)[NSObject alloc] isKindOfClass:[NSObject class]];//1
BOOL re6 = [(id)[NSObject alloc] isMemberOfClass:[NSObject class]];//1
BOOL re7 = [(id)[XZPerson alloc] isKindOfClass:[XZPerson class]];//1
BOOL re8 = [(id)[XZPerson alloc] isMemberOfClass:[XZPerson class]];//1
NSLog(@" \nre5 :%hhd\n re6 :%hhd\n re7 :%hhd\n re8 :%hhd\n",re5,re6,re7,re8);
 
BOOL re9 = [(id)[NSObject class] isKindOfClass:[XZPerson class]];//0
BOOL re10 = [(id)[NSObject class] isMemberOfClass:[XZPerson class]];//0
BOOL re11 = [(id)[NSObject alloc] isKindOfClass:[XZPerson class]];//0
BOOL re12 = [(id)[NSObject alloc] isKindOfClass:[XZPerson class]];//0

技术图片

 

 

首先这个我们需要分析,这个其实主要考察的就是
  1. 类方法 isKindOfClass主要判断什么
解释: 消息接收者的元类对象是否属于传入的class或class的子类
  1. 类方法isMemberOfClass主要判断什么
解释: 消息接收者的元类对象是不是传入的class
  1. 实例方法 isKindOfClass主要判断什么
解释:for循环遍历查找,先看自己的class是不是与传入的class相同,如果不同,查找自己的父类是否与传入的class相同,如果相同,返回YES,如果依然不同,返回NO;
概括
消息接受者或消息接收者的父类是否属于class,换言之,消息接收者是否属于传入的class或class的子类。
  1. 实例方法isMemberOfClass主要判断什么
解释: 消息接收者的class是不是传入的class
 
解析:
1.NSObject的元类属于NSObject的子类(NSObject元类的父类为NSObject)。
2.NSObject的元类不是NSObject类。
3.MJPerson的元类不属于MJPerson类。
4.MJPerson的元类不是MJPerson类。
技术图片

 

 

 

 

🔥isKindOfClass 和 isMemberOfClass

标签:com   解析   技术   none   ima   font   判断   就是   load   

原文地址:https://www.cnblogs.com/1-434/p/13129905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!