Emp*_*ack 29 cocoa objective-c objective-c-runtime
我想将字符串转换为类名.想象一下,我有一个更改的字符串,包含一个类名,例如字符串"MyExampleClass".现在,我想创建一个类的对象MyExampleClass.我必须从字符串中获取类名.我想做类似以下的事情.(将代码视为草图.)
NSString *classNameStr = "MyExampleClass";
id theClass = [UIClass classFromString:classNameStr];
theClass *myObject = [[theClass alloc] init];
这样做的正确方法是什么?
Ale*_*lex 76
这是你想要的:
Class theClass = NSClassFromString(classNameStr);
id myObject = [[theClass alloc] init];
请注意,您不能theClass用作类型名称(即theClass *myObject).你必须使用id它.
jus*_*tin 23
你想要NSClassFromString:
NSString *classNameStr = @"MyExampleClass";
Class theClass = NSClassFromString(classNameStr);
id myObject = [[theClass alloc] init];
您还可以使用objc运行时接口(例如objc_getClass(const char* name),objc_lookUpClass(const char* name)).前者不会加载一个类.后者会.在某些情况下,这个选项可能是件好事.
id a = [[NSClassFromString(@"MyExampleClass") alloc] init];
使用这个,这将给你你想要的.
| 归档时间: | 
 | 
| 查看次数: | 16486 次 | 
| 最近记录: |