iPhone如何检查对象的类型?

g.r*_*ion 63 iphone uiviewcontroller uiview

我想检查一个Object的类型.我怎样才能做到这一点?

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

我有两个类AViewControllerBViewController.我进入的对象UIViewController.现在,如何检查对象是否AViewController还是BViewController

Pav*_*nko 152

if([some_object isKindOfClass:[A_Class_Name class]])
{
    // do somthing
}
Run Code Online (Sandbox Code Playgroud)

  • 来自@Jasarien的帖子更具体.例如,比较一个对象是否为KindOfClass [UIView类]将返回你甚至所有UIImageViews,UIImages,UIRoundRectButtons .....所以在这种情况下"isMemberOfClass可能是更好的解决方案. (6认同)

Jas*_*ien 45

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

首先-class,它将返回您的对象的类.这将返回AViewController或BViewController.

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

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

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