在Objective-C中从类名的NSString创建对象

Sve*_*nar 45 c iphone cocoa cocoa-touch objective-c

如果我在NSString中拥有类的名称,我想知道是否可以创建某个类的对象.我知道在ActionScript,C#和PHP等其他语言中这是可行的......

像这样的东西:

NSString *className = @"AwesomeViewController";
UIViewController *object = [[className alloc] initWithNibName:className bundle:nil];
Run Code Online (Sandbox Code Playgroud)

ken*_*ytm 104

类也是Objective-C中的第一类对象.您可以使用NSClassFromString函数从NSString获取类对象.

[[NSClassFromString(className) alloc] init...]
Run Code Online (Sandbox Code Playgroud)

  • 另一种方法是:NSLog(@"%@",NSStringFromClass([obj class])); (28认同)