具有不同值的全局变量

时间:2011-07-28 09:39:00

标签: objective-c hyperlink global

我对Objective-C中的全局变量有疑问。

我有两个.m文件:file1.m和file2.m,以及一个.h文件:file.h

我想在.h中声明一个全局变量,这个变量有两个由.m文件定义的不同值。

我这样做:

在.h文件中:

extern NSString * const myVar;

在file1.m中:

NSString * const myVar = @"value 1";

在file2.m中:

NSString * const myVar = @"value 2";

但它没有链接,我有错误“重复符号”。

我理解这个错误,但我不能解决它来做我想做的事。

任何帮助?

3 个答案:

答案 0 :(得分:2)

不要在.h文件中声明它,而是在你使用它的每个.m文件中声明它(就像现在一样)并将“static”放在声明前面

static NSString * const myVar = @"value 2";

答案 1 :(得分:1)

如果你有一个全局变量,那么它是全局的......所以它到处都是一样的。变量不能包含两个不同的值。

如果你想在不同的文件中使用不同的值,那么不要将它们设为全局。

答案 2 :(得分:0)

NSString * const myVar = @"value 2";

只在一个.m。