美文网首页
isMemberOfClass与isKindOfClass区别

isMemberOfClass与isKindOfClass区别

作者: ThaiLanKing | 来源:发表于2017-07-09 22:06 被阅读11次
  1. 使用 isMemberOfClass: 判断对象是否是某个类的实例
  2. 使用 isKindOfClass: 判断是否为某个类或其派生类的实例
//JBHomeV2ViewController是JBHealthBaseViewController的子类
JBHomeV2ViewController *curVC = [[JBHomeV2ViewController alloc] init];

(lldb) po [curVC isKindOfClass:[JBHealthBaseViewController class]]
YES

(lldb) po [curVC isMemberOfClass:[JBHealthBaseViewController class]]
NO

(lldb) po [curVC isMemberOfClass:[JBHomeV2ViewController class]]
YES

之所以不使用==来判断,因为有的类实现了消息转发,使用class返回的是发起代理的对象而非接受代理的对象.

相关文章

网友评论

      本文标题:isMemberOfClass与isKindOfClass区别

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