我正在尝试构建一些东西来从类名动态实例化一个对象,类似于 Java 的 Class.forName 方法的工作方式,例如
Class klass = Class.forName("MyClass");
Object obj = klass.instantiate(...
我在 Objective-C 中没有看到任何这样的行为,所以我想在加载 Objective-C 类时调用一个方法来注册类。基本上,我想调用一个注册我的类的方法,例如
+ (void)mystatic {
[NSKeyedUnarchiver setClass:[self class] forClassName:"MyClass"]
}
有没有办法在 OS X 平台上的 Objective-C 中做到这一点?
谢谢。
最佳答案
你想使用 NSClassFromString,像这样:
Class klass = NSClassFromString(@"MyClass");
id obj = [[klass alloc] init];
关于objective-c - 类加载时 Objective-C 中的静态初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1083160/