我需要在两个文件之间共享一个常量值;因此,我决定使用const
变量,而不是保留一个神奇的数字。 所以我在appDelegate.m
创建global
变量const int viewTag = 100;
然后访问它作为extern const int viewTag;
但我得到以下链接错误:extern in objective-C;他们的行为与C不同吗?
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++ ENV。任何人都可以抛出一些光?
更新:将extern const int viewTag;
在头部和导入该头的作品,但我真的不想做了一个const int
我猜将其放入.h文件中为您的应用程序代理告诉编译器,以暴露给连接器?无论如何,如果你的变量被称为viewTag,为什么它在应用程序委托中呢?它应该在你的视图控制器中定义(或者,理想情况下,作为IBOutlet并使用xib连接?) – deanWombourne 2012-01-06 12:17:57
hey @deanWombourne,这是因为我想在最上面/理想视图上显示密码屏幕。 'viewTag'帮助我做到这一点。 – 2012-01-06 12:38:37
你可以创建一个UIView子类,它是一个密码屏幕,知道如何呈现itsef而不需要视图标签? – deanWombourne 2012-01-06 12:55:51