我寫返回一個視圖控制器實例爲給定的視圖控制器類的方法,但我需要確保在傳遞的類實際上是一個視圖控制器類:iOS:如何檢查給定的類是一種UIViewController類?
- (UIViewController *)viewControllerWithClass:(Class)cls nibName:(NSString *)nibName
{
if (cls is kind of UIViewController subclass)
return [[[cls alloc] initWithNibNamed:nibName bundle:nil] autorelease];
return nil;
}
我不能比較的名字從cls
開始的類可能不是UIViewController。
編輯:
對不起,我的意思的方法,裏面我該如何檢查是否cls
是一種UIViewController子類
由於這是公認的答案我只是想澄清,所有使用isKindOfClass方法,其他的答案是錯誤的,isKindOfClass不與型「類」對象的工作(如CLS在這例如),[[CDMyClass class] isKindOfClass:[CDMyClass class]]也返回NO [CDMyClass isKindOfClass:[CDMyClass class]]返回NO。爲了使用類型爲Class的接收器,您應該使用isSubclassOfClass – LightMan 2014-09-15 15:56:26