1

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

是否可以做类似 NSVariableFromString 的事情?

4

3 回答 3

4

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

于 2012-08-03T10:54:15.807 回答
4

目标 C 运行时有很多好东西供您使用。

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

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

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

于 2012-08-03T19:03:39.317 回答
1

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

于 2012-08-03T11:02:42.097 回答