有没有一种方法可以通过名称获取一个类?

4
在Objective-C中,当你有一个类的名称字符串时,是否有一种方法可以获取该类并向其发送消息?例如,是否有一个函数func,其中func(@“NSString”)== [NSString class]
我想知道这个原因是因为我正在为我正在开发的语言构建一个动态链接库,并希望它具有与Objective-C库交互的接口。
2个回答

13

是的 - 实际上有两个方法。如果您使用Foundation类型的框架(例如来自Cocoa,Cocoa Touch或GNUstep),则可以使用NSClassFromString()函数,该函数与您的func完全相同。如果您不想依赖于框架,则有一个类似的运行时函数objc_getClass(),它接受一个const char*并返回命名的类(如果没有找到,则返回nil)。


2
你可以使用NSClassFromString(NSString className)根据类名获取类对象。
希望这能帮到你!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接