objective-c - 将字符串 ("MyExampleClass") 转换为类名 (MyExampleClass)

标签 objective-c cocoa objective-c-runtime

我想将字符串转换为类名。假设我有一个字符串,它会发生变化,其中包含一个类名,例如字符串 "MyExampleClass"。现在,我想创建一个类 MyExampleClass 的对象。我必须从字符串中获取类名。我想做类似下面的事情。 (将代码视为草图。)

NSString *classNameStr = "MyExampleClass";
id theClass = [UIClass classFromString:classNameStr];
theClass *myObject = [[theClass alloc] init];

正确的做法是什么?

最佳答案

这是你想要的:

Class theClass = NSClassFromString(classNameStr);
id myObject = [[theClass alloc] init];

请注意,您不能将 theClass 用作类型名称(即 theClass *myObject)。你必须为此使用 id

关于objective-c - 将字符串 ("MyExampleClass") 转换为类名 (MyExampleClass),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4654568/

相关文章:

objective-c - 将 NSNumber 对象分配给 NSString 对象不会导致任何错误或警告

用于检测变量是否为原始变量的 Objective-C 宏

swift - 为什么在 Swift 中通过 Selector 调用时不考虑函数的默认参数?

ios - 如果来自 UIViewController 的对象如何仅获取我创建的自定义属性的名称(在运行时)?

c++ - 在 Objective c 中从 NSNotification 中的 Userinfo 转换 NSEnum 失败

objective-c - 通过 SSH 读取实时日志

macos - 如何在 Swift 中单击按钮时填充 NSTableView

ios - 协议(protocol)中无法识别的选择器

objective-c - Xcode 7.3 无法使用手动引用计数在文件中创建 __weak 引用

ios - 如何在 ios 中有效地一次隐藏多个 View