似乎如果您为Mac OS开发,NSObject
具有isSubclassOfClass
方法。但是当我检查同一类的iOS类引用时,它没有该方法(并且Xcode抱怨该方法)。
我目前的解决方案是在其中放置一个方法-(void)iAmClassB
,并执行respondsToSelector:iAmClassB
,但这似乎是做作的。我错过了什么吗?
答案 0 :(得分:58)
可从iOS 2.0及更高版本SDK
获取if ([ClassB isSubclassOfClass:[ClassA class]]) {
NSLog(@"yes ClassB is SubclassOfClass of ClassA");
}
<强>
isSubclassOfClass:
强>返回一个布尔值,指示接收类是否为 给定类的子类或相同的类。
+ (BOOL)isSubclassOfClass:(Class)aClass
<强>参数强>
ACLASS
一个类对象。
返回值
YES
如果接收类是 - 或{ - 1}}的子类, 否则aClass
。<强>状况强>
适用于iOS 2.0及更高版本。
答案 1 :(得分:5)
id a= ...;
if([a isKindOfClass:[A class]]){
...
}
应该做的工作。您很少需要查看它是否真的是 sub 类。请参阅here。