2010-06-01 4 views
45

Je me demandais si je pouvais créer un objet d'une classe si j'avais le nom de la classe dans un NSString. Je sais que cela est possible dans d'autres langues comme ActionScript, C# et PHP ...Créer un objet à partir de NSString du nom de classe dans Objective-C

Quelque chose comme ceci:

NSString *className = @"AwesomeViewController"; 
UIViewController *object = [[className alloc] initWithNibName:className bundle:nil]; 

Répondre

104

classes sont des objets de première classe en Objective-C aussi. Vous pouvez obtenir l'objet de classe à partir d'un NSString avec le NSClassFromString function.

[[NSClassFromString(className) alloc] init...] 
+0

travail comme un charme :) –

+28

et l'inverse est: NSLog (@ "% @", NSStringFromClass ([classe obj])); – neoneye

+0

Est-ce une réponse faible? – zszen

Questions connexes