如何确定类B是否是类A的子类?
看来,如果您为Mac OS开发, NSObject
具有isSubclassOfClass
方法。 但是,当我检查相同的类的iOS类引用,它没有方法(和Xcode抱怨的方法)。
我目前的解决scheme是把方法-(void)iAmClassB
在那里,并执行一个respondsToSelector:iAmClassB
,但似乎devise。 我错过了什么吗?
它可以从iOS 2.0和更高版本的SDK中获得
if ([ClassB isSubclassOfClass:[ClassA class]]) { NSLog(@"yes ClassB is SubclassOfClass of ClassA"); }
文档 :
isSubclassOfClass:
返回一个布尔值,该值指示接收类是否是给定类的子类或完全相同。
+ (BOOL)isSubclassOfClass:(Class)aClass
参数
一类
一个类对象。
返回值
如果接收类是
aClass
的子类,或者与aClass
完全相同,aClass
;否则为NO
。可用性
在iOS 2.0及更高版本中可用。
id a= ...; if([a isKindOfClass:[A class]]){ ... }
应该做这个工作。 你很less需要看看它是否真的是一个子类。 看到这里 。