Sto scrivendo un metodo che restituisce un'istanza View Controller per una determinata classe di visualizzazione del controller, ma ho bisogno di assicurarsi che la classe passato è in realtà una classe di visualizzazione del controller:iOS: come verificare una determinata classe è una sorta di classe 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;
}
non posso paragonare il nome di la classe dal cls
potrebbe non essere UIViewController.
edit:
Mi dispiace significava all'interno del metodo, come faccio a controllare se cls
è una sorta di UIViewController sottoclasse
Dal momento che questa è la risposta accettata voglio solo chiarire che tutte le altre risposte che utilizzano il metodo isKindOfClass sono sbagliate, isKindOfClass non funziona per gli oggetti di tipo 'Classe' (come CLS è in questo esempio), [[Classe CDMyClass] isKindOfClass: [classe CDMyClass]] restituisce NO anche [CDMyClass isKindOfClass: [classe CDMyClass]] restituisce NO. Per usare un ricevitore che è un tipo di classe dovresti usare isSubclassOfClass – LightMan