isMemberOfClass和isKindOfClass的区别

1.isMemberOfClass:作用:用于判断一个对象是否属于当前这个类

Person *rose = [[Person alloc] init];

if ([rose isMemberOfClass:[Person class]]) {

NSLog(@"rose是person类创建的");

}

if ([rose isMemberOfClass:[NSObject class]]) {

NSLog(@"rose是NSObject类创建的");//不执行

}

2.isKindOfClass:用于判断当前对象是否属于这个类或者这个类的子类

if ([rose isKindOfClass:[Person class]]) {

NSLog(@"rose时person类的对象");//执行

}

if ([rose isKindOfClass:[NSObject class]]) {

NSLog(@"----rose时person类的对象");//执行

}

时间: 2024-08-27 17:41:01

isMemberOfClass和isKindOfClass的区别的相关文章

isMemberOfClass、isKindOfClass原理分析

isMemberOfClass - 调用者必须是传入的类的实例对象才返回YES- 判断调用者是否是传入对象的实例,别弄反了,如 [s1 isMemberOfClass:p1] ,意思是s1是否是p1的实例对象- 去去父类递归查找判断 源码: + (BOOL)isMemberOfClass:(Class)cls { return object_getClass((id)self) == cls; } - (BOOL)isMemberOfClass:(Class)cls { return [self

iOS 知识点梳理

OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特性(如C++),又有动态语言的效率(动态绑定.动态加载等).总体来讲,OC确实是一门不错的编程语言, Objective-C具有相当多的动态特性,表现为三方面:动态类型(Dynamic typing).动态绑定(Dynamic binding)和动态加载(Dynamic loading).动态——必须到运行时(run time)才会做的一些事情. 动态类型:即运行时再决定对象的类型,这

iOS 面试常见问题最全梳理

序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态平衡.矫情一下,言归正传,我奉献一下,为iOS应聘者梳理一下面试题,希望能助一臂之力! OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特性(如C++),又有动态语言的效率(动态绑定.动态加载等).总体来讲,OC确实是一门不错的编程语言,

iOS面试必看,最全梳理

http://www.cocoachina.com/ios/20160323/15770.html 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态平衡.矫情一下,言归正传,我奉献一下,为iOS应聘者梳理一下面试题,希望能助一臂之力! OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特

iOS冷知识

首先声明 转载的  不过忘了地址在哪将就看吧 数组中的指针 int array[3] = {11,22,33} &array[0] 可看做是一个指针,指向array[0],指向int类型的数据(4个字节的数据) array 可看做是一个指针:指向array[0], 同价与&array[0] &array 可看做是一个指针,指向array 数组,array[3] 就是12个字节的数据 static的使用 修饰局部变量,修改的是生命周期 static修饰的局部变量,在整个程序运行过程中

充电-ios(未完更新中...

[reference]http://www.cocoachina.com/ios/20160323/15770.html OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特性(如C++),又有动态语言的效率(动态绑定.动态加载等).总体来讲,OC确实是一门不错的编程语言, Objective-C具有相当多的动态特性,表现为三方面:动态类型(Dynamic typing).动态绑定(Dynamic binding)和动态加载(Dynam

iOS面试问题全面梳理 --持续更新

序言 目前,参加到iOS队伍的人是越来越多,形式不容乐观.因此,为iOS应聘者梳理一下面试题,希望能助一臂之力! OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特性(如C++),又有动态语言的效率(动态绑定.动态加载等).总体来讲,OC确实是一门不错的编程语言, Objective-C具有相当多的动态特性,表现为三方面:动态类型(Dynamic typing).动态绑定(Dynamic binding)和动态加载(Dynamic l

IOS开发之NSObject协议类方法说明

oc中NSObject类是所有类的基类,所有类都要继承自它,那么它的方法就显得特别重要,因为所有类都会有这些基本的方法. 看看oc的源码中NSObject是这样定义的: @interface NSObject <NSObject> { Class isa OBJC_ISA_AVAILABILITY; } 可以看出,它实现了NSObject协议,下面我们来看看NSObject协议中定义的方法和属性.顺便将它归类为7大类 @protocol NSObject //*****1.识别类***** @

iOS知识点全梳理-备用

感谢大神分享 文/Jack_lin(简书作者)原文链接:http://www.jianshu.com/p/5d2163640e26著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态平衡.矫情一下,言归正传,我奉献一下,为iOS应聘者梳理一下面试题,希望能助一臂之力! OC的理解与特性