在Objective-C中,有一种方法可以在将类的名称作为字符串时获取类并向其发送消息吗?例如,是否有func
函数func(@"NSString") == [NSString class]
?
我想知道这个的原因是我正在为我正在使用的语言构建一个动态链接库,我希望它有一个Objective-C库的接口。
答案 0 :(得分:13)
是的 - 实际上是两个。如果你有一个基础类型框架(例如来自Cocoa,Cocoa Touch或GNUstep),你可以使用NSClassFromString()
函数,它与你的func
完全相同。如果您不想依赖于框架,那么有一个类似的运行时函数objc_getClass()
,它接受const char*
并返回指定的类(如果没有找到,则返回nil
)。< / p>
答案 1 :(得分:2)
您可以使用NSClassFromString(NSString className)
从名称中获取类对象。
希望这有帮助!