iPhone如何检查对象的类型?

时间:2009-09-02 14:42:43

标签: iphone uiview uiviewcontroller

我想检查一个Object的类型。我怎么能这样做?

场景是我得到一个对象。如果该对象是A类型,则执行一些操作。如果它是B类,那么做一些操作。目前,对象的类型是C,它是A和B的父级。

我有两个班级AViewControllerBViewController。我进入UIViewController的对象。现在如何检查对象是AViewController还是BViewController

3 个答案:

答案 0 :(得分:152)

if([some_object isKindOfClass:[A_Class_Name class]])
{
    // do somthing
}

答案 1 :(得分:44)

NSObject上有一些方法可以让你检查类。

首先是-class,它将返回对象的Class。这将返回AViewController或BViewController。

然后有两种方法,-isKindofClass:isMemberOfClass:

-isKindOfClass:将接收器与作为参数传入的类进行比较,并根据类是否是给定类的相同类型或子类返回true或false。

-isMemberOfClass:将接收器与作为参数传入的类进行比较,并根据类是否与给定类严格相同的类返回true或false。

答案 2 :(得分:3)

Objective-C中更常见的模式是检查对象是否响应您感兴趣的方法。示例:

if ([object respondsToSelector:@selector(length)]) {
    // Do something
}

if ([object conformsToProtocol:@protocol(NSObject)]) {
    // Do something
}