iPhone如何检查一个对象的types?
我想检查一个对象的types。 我怎样才能做到这一点?
情况是我得到一个对象。 如果该对象是typesA,则执行一些操作。 如果是B型,那么做一些操作。 目前,对象的types是C,它是A和B的父类。
我有两个类AViewController
和BViewController
。 我在UIViewController
获得的对象。 现在如何检查对象是AViewController
还是BViewController
?
if([some_object isKindOfClass:[A_Class_Name class]]) { // do somthing }
NSObject上有一些方法可以让你检查类。
首先有一个-class
将返回您的对象的类。 这将返回AViewController或BViewController。
然后有两个方法, -isKindofClass:
和isMemberOfClass:
-isKindOfClass:
将接收者与作为参数传入的类进行比较,并根据类是否是给定类的相同types或子类来返回true或false。
-isMemberOfClass:
将接收者与作为参数传入的类进行比较,并根据类是否严格与给定类相同的类来返回true或false。
Objective-C中更常见的模式是检查对象是否响应您感兴趣的方法。例如:
if ([object respondsToSelector:@selector(length)]) { // Do something } if ([object conformsToProtocol:@protocol(NSObject)]) { // Do something }