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

isKindOfClass和isMemberOfClass的区别

时间:2016-07-24 19:30:39      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

isKindOfClass和isMemberOfClass的区别

  isKindOfClass和isMemberOfClass 都是NSObject的比较Class的方法
  但两个有很大区别:
  isKindOfClass来确定一个对象是否是一个类的成员,或者是派生自该类的成员
  isMemberOfClass只能确定一个对象是否是当前类的成员
  例如:我们已经成NSObject派生了自己的类,isMemberOfClass不能检测任何的类都是基于NSObject类这一事实,而isKindOfClass可以。
  [[NSMutableData data] isKindOfClass:[NSData class]]; // YES
[[NSMutableData data] isMemberOfClass:[NSData class]]; // NO

例:
- (void) testIsKindOfClass {
Class1 *c1=[Class1 new];
if ([c1 isKindOfClass: [NSObject class]]) {
NSLog(@"c1 is a kind of NSObject.");
}
if ([c1 isMemberOfClass:[Class1 class]]) {
NSLog(@"c1 is Member of Class1 !");
}
if (![c1 isMemberOfClass:[NSObject class]]) {
NSLog(@"c1 is‘t Member of NSObject !");
}
}

输出结果;
c1 is a kind of NSObject .
c1 is Member of Class1 !
c1 is‘t Member of NSObject !

isKindOfClass和isMemberOfClass的区别

标签:

原文地址:http://www.cnblogs.com/stevenwuzheng/p/5701353.html

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