isMemberOfClass与isKindOfClass区别

2017-07-09  本文已影响11人  ThaiLanKing
  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返回的是发起代理的对象而非接受代理的对象.

上一篇 下一篇

猜你喜欢

热点阅读