编译器问题:“使用未声明的标识符”错误与仍然有效的常量

时间:2012-10-19 21:11:16

标签: constants compiler-warnings

我使用Constants.h文件为URL等资源声明了很多字符串。这在过去一直运行良好,实际上在我编译和运行时仍然可以工作。

然而,问题导航器显示错误(红色爆炸),尽管将它们标记为“语义问题”(这听起来更像是一个警告),代码编辑器窗口也显示了这样的行:

[app openBrowserWithUrl:[NSURL URLWithString: kRequestInformationURL]];

Constants.h中的行如下所示:

static NSString * const kRequestInformationURL = @"http://www.myserver.com"; // uses SSL!

它为Constants.h中的所有声明抛出了警告/错误。但它仍然编译并运行良好!我不知道这里发生了什么,但它非常烦人,因为我的项目现在显示我有很多警告/错误。

我还应该补充说,这发生在我的一台Mac上的Xcode的最新版本(4.5.1)中  而不是另一个,打开完全相同的项目文件。

我应该注意的另一件事是:在编译后单击文件进行编辑时,通常只会看到这些错误/警告。

UPDATE EDITED :我认为通过坚持更严格的常量声明来解决这些问题,正如本文中所解释的那样:https://stackoverflow.com/a/539039/326398然而所有的警告(就像我一样)之前说过,在Xcode中标有错误图标)回来了。所以神秘感仍然非常完整。

1 个答案:

答案 0 :(得分:1)

当你使用“假”变量时,你的NSString被声明为*“const”,你不能这样做,因为const实际上是Xcode中某些东西的声明,只需更改NSStrings变量名。