从任何文件访问变量

时间:2011-07-19 22:49:43

标签: iphone objective-c ios xcode

我有一个带有几个头文件和实现文件的objective-c / xcode项目。我想声明一个我可以读取的变量,并从与项目相关的任何文件中进行更改。我尝试在标头中执行extern int val = 0;,但这会导致链接器错误。

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

要存储和访问{app}和iOS应用中的int,我建议您使用NSUserDefaults

您可以通过

从应用程序的任何位置设置值
NSUserDefaults *defaults = [NSUserDefaults  standardUserDefaults];
[defaults setInteger:anInt forKey:@"IntKey"];
[defaults synchronize];

然后,您可以通过

从应用程序中的任何位置检索值
NSUserDefaults *defaults = [NSUserDefaults  standardUserDefaults];
int a = [defaults integerForKey:@"IntKey"];

这也适用于BOOLfloatNSStringNSArray。查看NSUserDefaults documentation了解更多详情和示例。

答案 1 :(得分:0)

把:

extern int val;

在要使用此全局变量的任何.m或.c文件中包含的至少一个头文件中。在这里包括一项任务几乎总是一个错误。

int val = 0;

在任何函数或方法范围之外,只包含在构建中包含的.m或.c文件中。没有了。

如果经常访问此变量,并关心性能和电池寿命,使用NSDefaults比访问全局变量要慢几个数量级。对单例模型对象使用app委托也有点慢,并且会产生稍大的应用程序。