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

【OC学习-15】如何判断两个对象是否属于同一个类?如何判断一个对象是否属于某一个类?

时间:2014-09-04 13:23:59      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:blog   2014   log   c   学习   程序   file   as   r   

每个对象都有一个isa,这个isa里面储存了很多关于类对象的一些信息,所以当这个对象编译的时候,程序会通过isa来查看这个对象的类型,即执行的时候再识别叫动态类型识别。而且这个对象里面的方法其实是被封装在SEL里面(有方法ID和内容),当外面利用方法传递消息的时候,先把这个方法ID化,然后找相同ID的方法,找到了就调用,找不到就通过isa里存储的信息往父类找,最终找不到,就报错。(相同的方法签名=相同的ID)


(1)每个对象都可以调用类对象,如果它们是一个类出来的,它们的类对象也是一样的,所以判断对象是否属于同一个类,就判断它们的类对象是否相同,如下:

ASExp * exp1=[[ASExp alloc]init];
        ASExp * exp2=[[ASExp alloc]init];
        if ([exp1 class]==[exp2 class]) {   //对象名+class就可以调出类对象
            NSLog(@"same!");
        }

结果是:

same!

(2)判断某个对象是否属于某一个类,如下:

ASExp * exp1=[[ASExp alloc]init];
        if ([exp1 isMemberOfClass:[ASExp class]]==YES) {  //类名+class也可以调出类对象
            NSLog(@"YES!");
        }

结果是:

YES!

【OC学习-15】如何判断两个对象是否属于同一个类?如何判断一个对象是否属于某一个类?

标签:blog   2014   log   c   学习   程序   file   as   r   

原文地址:http://blog.csdn.net/weisubao/article/details/39050669

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