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的区别的更多相关文章

  1. isKindOfClass、isMemberOfClass的区别

    两者都能检测一个对象是否是某个类的成员,两者的区别是:isKindOfClass 不但可以用来确定一个对象是否是一个类的成员,也可以用来确定一个对象是否是派生自该类的类的成员.isMemberOfCl ...

  2. isKindOfClass和isMemberOfClass 的区别

    判断对象类型 -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) isMemberOfClass: classObj 判断是否是这个类 ...

  3. isKindOfClass和isMemberOfClass 区别

    isKindOfClass和isMemberOfClass 都是NSObject的比较Class的方法.   但两个有很大区别: isKindOfClass来确定一个对象是否是一个类的成员,或者是派生 ...

  4. isKindOfClass和isMemberOfClass

    https://github.com/ming1016/study/wiki/Objc-Runtime 先看看isKindOfClass和isMemberOfClass在Object.mm中的实现 - ...

  5. isKindOfClass,isMemberOfClass

    - (BOOL)isKindOfClass:(Class)aClass; - (BOOL)isMemberOfClass:(Class)aClass; 特点: 1.isKindOfClass   判断 ...

  6. isKindOfClass:和isMemberOfClass:-b

    isKindOfClass: Returns a Boolean value that indicates whether the receiver is an instance of given c ...

  7. IOS- 02 零碎知识总结

    1.UIView,UIViewController,UIWindow和CALayer UIView是什么,做什么:UIView是用来显示内容的,可以处理用户事件 CALayer是什么,做什么:CALa ...

  8. NSObject头文件解析 / 消息机制 / Runtime解读 (一)

    NSObject头文件解析 当我们需要自定义类都会创建一个NSObject子类, 比如: #import <Foundation/Foundation.h> @interface Clas ...

  9. Object-C知识点

    Object-C常用的知识点,以下为我在实际开发中用到的知识点,但是又想不起来,需要百度一下的知识点 1. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: ...

随机推荐

  1. JS截字符串处理数字,汉字,英文问题

    <script> function suolve( str,sub_length ){ var temp1 = str.replace(/[^\x00-\xff]/g,"**&q ...

  2. UITableView在设置contentOffset的同时也reload,造成tableView的contentOffset偏差

    最近在写一个聊天的框架,遇到一个奇葩的问题,就是发送聊天记录的时候(需要tableView上移,显示出最新的记录),增加一条记录无疑需要reload一下(大家都明白的),这是就会出现头疼的问题,页面显 ...

  3. 纯CSS实现二级下拉导航菜单

    这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且它还是学习CSS菜单编写的典型教程,让你学会很多CSS技巧. 运行效果截图如下: < ...

  4. 1.0 多控制器管理(附:Demo)

    本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末 如果觉得本文内容过长,请前往本人 “简书”       控制器 :   一个iOS的app很少只由一个控制器组成,除非这个app极其简 ...

  5. HDU5942 : Just a Math Problem

    \[\begin{eqnarray*}ans&=&\sum_{i=1}^ng(i)\\&=&\sum_{i=1}^n\sum_{d|i}\mu^2(d)\\&= ...

  6. BlockCanary 一个轻量的,非侵入式的性能监控组件(阿里)

    开发者博客: BlockCanary — 轻松找出Android App界面卡顿元凶 开源代码:moduth/blockcanary BlockCanary对主线程操作进行了完全透明的监控,并能输出有 ...

  7. [小工具]EquationCalcular

    名称:EquationCalcular 版本:V1.0.0 更新日期:2015/9/27   简要介绍:本工具用于计算范围比较有限的方程及方程组,仅仅局限于n元一次方程组,欢迎需要的小学生和初中生来玩 ...

  8. DataTable 的使用

    DataTable CFHMXdt = new DataTable(); CFHMXdt.Columns.Add("group", typeof(System.String));  ...

  9. ExtJS笔记 Ext.data.Types

    This is a static class containing the system-supplied data types which may be given to a Field. Type ...

  10. reg

    <div class="login-module"> <div class="wide c login"> <form id=&q ...