有没有办法按名字上课?

时间:2010-11-15 01:39:22

标签: objective-c string class dynamic-linking

在Objective-C中,有一种方法可以在将类的名称作为字符串时获取类并向其发送消息吗?例如,是否有func函数func(@"NSString") == [NSString class]

我想知道这个的原因是我正在为我正在使用的语言构建一个动态链接库,我希望它有一个Objective-C库的接口。

2 个答案:

答案 0 :(得分:13)

是的 - 实际上是两个。如果你有一个基础类型框架(例如来自Cocoa,Cocoa Touch或GNUstep),你可以使用NSClassFromString()函数,它与你的func完全相同。如果您不想依赖于框架,那么有一个类似的运行时函数objc_getClass(),它接受​​const char*并返回指定的类(如果没有找到,则返回nil)。< / p>

答案 1 :(得分:2)

您可以使用NSClassFromString(NSString className)从名称中获取类对象。

希望这有帮助!