类加载时 Objective-C 中的静态初始化器 [英] Static initializer in Objective-C upon Class Loading

查看:51
本文介绍了类加载时 Objective-C 中的静态初始化器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试构建一些东西来从类名动态实例化一个对象,类似于 Java 的 Class.forName 方法的工作方式,例如

I am trying to build something to dynamically instantiate an object from class-name similar to how Java's Class.forName method works, e.g.

Class klass = Class.forName("MyClass");
Object obj = klass.instantiate(...

我在 Objective-C 中没有看到任何此类行为,因此我想在加载 Objective-C 类时调用一个方法来注册 Class.基本上,我想调用一个注册我的类的方法,例如

I didn't see any such behavior in Objective-C so I would like to call a method to register Class when an Objective-C class is loaded. Basically, I would like to call a method that registers my class, e.g.

+ (void)mystatic {
  [NSKeyedUnarchiver setClass:[self class] forClassName:"MyClass"]
}

有没有办法在 OS X 平台上的 Objective-C 中做到这一点?

Is there a way to do this in Objective-C on OS X platform?

谢谢.

推荐答案

你想使用 NSClassFromString,像这样:

You want to use NSClassFromString, like this:

Class klass = NSClassFromString(@"MyClass");
id obj = [[klass alloc] init];

这篇关于类加载时 Objective-C 中的静态初始化器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆