objective-c - 类加载时 Objective-C 中的静态初始化器

标签 objective-c static-constructor

我正在尝试构建一些东西来从类名动态实例化一个对象,类似于 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/

相关文章:

mysql - 从未知时间戳转换为可读时间戳

ios - 如何获得可用 NSFont 系列的列表?

c# - 在引用任何静态成员之前调用静态构造函数

wcf - 创建单例 ChannelFactory<T> 并重用于客户端连接

c# - 如何运行静态构造函数?

ios - 无法关闭 PKPaymentAuthorizationViewController

iphone - UITableView 自定义滚动条

objective-c - NSStatusItem 阻止 NSWindows 中的用户界面更新

c# - 如何在 C# 中的运行时实现带参数的静态字典<T>?

c# - 类型初始化器(静态构造器)异常处理