Objective-C 编程语言(2) 类,对象,消息 --- 类(5)检查两个类对象是否相等

来源:互联网 发布:firefox ubuntu 编辑:程序博客网 时间:2024/05/14 11:56
转载请标明出处:http://blog.csdn.net/zhangxingping

    检查两个类对象是否相等  

    我们可以直接比较指针是否相等来检查两个类对象是否相等。重要的一点是获取正确的类。Cocoa 框架中提供了好几种特性可以动态地,透明地对即存的类进行派生,以便扩展他们的功能(例如,key-value Observing (KVO,关键字-值与观察机制)以及Core Data(核心数据)都会这么做。更多信息请分别参阅《Key-Value Obeserving 编程指南》和《Core Data编程指南》)。在这种情况下,class方法通常都会被重写,以便伪装成被他们所替代的类。因此当我们需要检测类对象是否相等的时候,我们应该使用class方法反悔的对象,而不是使用那些底层的函数。从API的层面来说,针对这种动态派生来将,下面的三项是不相等的:

    [object class] != object_getClass(object) != *((Class *)object);
    我们应该使用类似于下面的代码来检测两个类对象是否相等:   
    if ( [objectA class] ==[objectB class] )    {        //...    }