isKindOfClass和isMemberOfClass的区别
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的区别的更多相关文章
- isKindOfClass、isMemberOfClass的区别
两者都能检测一个对象是否是某个类的成员,两者的区别是:isKindOfClass 不但可以用来确定一个对象是否是一个类的成员,也可以用来确定一个对象是否是派生自该类的类的成员.isMemberOfCl ...
- isKindOfClass和isMemberOfClass 的区别
判断对象类型 -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) isMemberOfClass: classObj 判断是否是这个类 ...
- isKindOfClass和isMemberOfClass 区别
isKindOfClass和isMemberOfClass 都是NSObject的比较Class的方法. 但两个有很大区别: isKindOfClass来确定一个对象是否是一个类的成员,或者是派生 ...
- isKindOfClass和isMemberOfClass
https://github.com/ming1016/study/wiki/Objc-Runtime 先看看isKindOfClass和isMemberOfClass在Object.mm中的实现 - ...
- isKindOfClass,isMemberOfClass
- (BOOL)isKindOfClass:(Class)aClass; - (BOOL)isMemberOfClass:(Class)aClass; 特点: 1.isKindOfClass 判断 ...
- isKindOfClass:和isMemberOfClass:-b
isKindOfClass: Returns a Boolean value that indicates whether the receiver is an instance of given c ...
- IOS- 02 零碎知识总结
1.UIView,UIViewController,UIWindow和CALayer UIView是什么,做什么:UIView是用来显示内容的,可以处理用户事件 CALayer是什么,做什么:CALa ...
- NSObject头文件解析 / 消息机制 / Runtime解读 (一)
NSObject头文件解析 当我们需要自定义类都会创建一个NSObject子类, 比如: #import <Foundation/Foundation.h> @interface Clas ...
- Object-C知识点
Object-C常用的知识点,以下为我在实际开发中用到的知识点,但是又想不起来,需要百度一下的知识点 1. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: ...
随机推荐
- JS截字符串处理数字,汉字,英文问题
<script> function suolve( str,sub_length ){ var temp1 = str.replace(/[^\x00-\xff]/g,"**&q ...
- UITableView在设置contentOffset的同时也reload,造成tableView的contentOffset偏差
最近在写一个聊天的框架,遇到一个奇葩的问题,就是发送聊天记录的时候(需要tableView上移,显示出最新的记录),增加一条记录无疑需要reload一下(大家都明白的),这是就会出现头疼的问题,页面显 ...
- 纯CSS实现二级下拉导航菜单
这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且它还是学习CSS菜单编写的典型教程,让你学会很多CSS技巧. 运行效果截图如下: < ...
- 1.0 多控制器管理(附:Demo)
本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末 如果觉得本文内容过长,请前往本人 “简书” 控制器 : 一个iOS的app很少只由一个控制器组成,除非这个app极其简 ...
- HDU5942 : Just a Math Problem
\[\begin{eqnarray*}ans&=&\sum_{i=1}^ng(i)\\&=&\sum_{i=1}^n\sum_{d|i}\mu^2(d)\\&= ...
- BlockCanary 一个轻量的,非侵入式的性能监控组件(阿里)
开发者博客: BlockCanary — 轻松找出Android App界面卡顿元凶 开源代码:moduth/blockcanary BlockCanary对主线程操作进行了完全透明的监控,并能输出有 ...
- [小工具]EquationCalcular
名称:EquationCalcular 版本:V1.0.0 更新日期:2015/9/27 简要介绍:本工具用于计算范围比较有限的方程及方程组,仅仅局限于n元一次方程组,欢迎需要的小学生和初中生来玩 ...
- DataTable 的使用
DataTable CFHMXdt = new DataTable(); CFHMXdt.Columns.Add("group", typeof(System.String)); ...
- ExtJS笔记 Ext.data.Types
This is a static class containing the system-supplied data types which may be given to a Field. Type ...
- reg
<div class="login-module"> <div class="wide c login"> <form id=&q ...