如何确定类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需要看看它是否真的是一个类。 看到这里 。