我可以像NSClassFromString和NSSelectorFromString那样执行NSVariableFromString吗?

时间:2012-08-03 10:36:42

标签: objective-c ios cocoa-touch nsstring

是的,所以我注意到你可以做NSClassFromString和NSSelectorFromString。

是否可以执行类似NSVariableFromString?

的操作

3 个答案:

答案 0 :(得分:4)

没有。编译的应用程序不包含变量名称,除非包含调试信息,并且通常不适用于发布应用程序。

答案 1 :(得分:4)

目标C运行时有很多好处可供消费。

如果你想要一个iVar,你可以用字符串名称调用object_getInstanceVariable。

如果你想要变量,它需要更多的工作,并且它们必须对链接器是全局可见的。您可以为此目的使用CFBundleGetDataPointerForName。

请务必阅读文档,了解有关运行时信息的限制和特定信息,以及不同平台上的内容的可用性。

答案 2 :(得分:1)

您可以使用NSScanner从字符串中获取但是,作为JemeryP注释,在运行时变量名称通常已转换为指针和内存地址。