目标-C的外部;他们的行为与C不同吗?

时间:2012-01-06 11:40:28

标签: objective-c ios

我需要在两个文件之间共享一个const值;所以我决定使用const变量,而不是保持一个神奇的数字。 所以我在global中创建了const int viewTag = 100;变量appDelegate.m 然后将其作为extern const int viewTag;访问,但我收到了以下链接器错误:

Undefined symbols for architecture i386:
"viewTag", referenced from:
  -[xxxViewController launchxxx] in libxxx_iPad.a(xxxViewController.o)
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

但是上面的东西在正常的C,C ++环境中是非常合法的。任何人都能发光吗?

更新:将extern const int viewTag;放入标题并导入该标题有效,但我真的不想为单个const int

执行此操作

2 个答案:

答案 0 :(得分:2)

尝试推杆:

extern const int viewTag;
appDelegate.h

,然后导入此标题,您需要访问viewTag

答案 1 :(得分:2)

另一种方法是在.pch文件中使用#define viewTag 100.

但我认为,最好的方法是使用常量创建.h文件并包含你想要的地方