在Objective-C中,当您将类的名称作为字符串时,是否可以获取类并向其发送消息?例如,是否有函数func
其中func(@"NSString") == [NSString class]
?
我想知道的原因是我正在为我正在使用的语言构建动态链接程序库,并且希望它具有与Objective-C库的接口。
是的-实际上是两个。如果您具有基金会类型的框架(例如,来自Cocoa,Cocoa Touch或GNUstep),则可以使用NSClassFromString()
函数,该函数与NSClassFromString()
完全相同。如果您不希望依赖框架,则可以使用类似的运行时函数func
,该函数采用objc_getClass()
并返回命名的类(如果找不到,则返回objc_getClass()
)。
您可以使用const char*
从其名称获取类对象。
希望这会有所帮助!