Xcode显示许多错误,但程序编译并运行正常(在模拟器和设备中)

时间:2012-08-19 01:17:59

标签: xcode compiler-errors

安装CocoaLumberjack'日志压缩器类之后,我一直遇到这种烦人的行为:Xcode抱怨说有很多未声明的标识符并且给了我很多错误(不是警告而是红色图标错误)。

问题是我可以编译和运行我的iPad应用程序,但Xcode不会做任何自动完成。我尝试清理构建文件夹(Product> 选项 + Clean),还删除了派生数据。我也重新启动无济于事。

你可以想象这是一种痛苦的工作。我确实在之前版本的Xcode上发生过这种行为;它与我的预编译头文件中的东西有关,但使用上面的解决方案总能修复它。我目前正在使用Xcode 4.4(4F250)。

我收到的示例错误:

Semantic Error: use of undeclared identifier 'DDTTYLogger'

上述情况甚至发生在我自己编写的类中,并且自安装CocoaLumberjack压缩器类以来未更改

17 个答案:

答案 0 :(得分:90)

我在使用以下内容进行多次尝试后终于解决了这个问题:

从我的Prefix.pch中删除最后一个#import并重新构建。错误会发生(显然)。把线放回去并重新建造。没有错误显示,10秒左右后,错误会再次出现。

重复以上操作,除了最后的#import,删除最后的两个导入,然后删除三个,四个等。我这样做直到我删除了五个导入,当我把它们放回去等待时,Xcode停止抱怨。

请注意,这根本不会发生在我身上。我在某处的博客上阅读了这个解决方案。

奇怪的错误......

答案 1 :(得分:9)

打开构建设置并将“Precompile Prefix Header”设置为“No”,这解决了我的问题。

荣誉:https://stackoverflow.com/a/7035492/936957

答案 2 :(得分:7)

我已经在Objective-C和Swift的所有最新版本的Xcode中不断遇到这些问题。

我今天注意到我在一个特定的类文件中收到了错误。我把它从一些额外的目标中删除了,错误终于消失了!

我认为Xcode现在处理多个目标存在一些根本性的错误。我的理论是,如果没有构建另一个目标,你基本上会看到该目标的错误。无论如何希望这有助于某人。

答案 3 :(得分:3)

我遇到了通过cocoapods安装的库的问题。转到Build Settings并搜索“允许非模块化包含在框架模块中”然后将其设置为Yes就可以了。

答案 4 :(得分:3)

通过为某些文件设置“目标成员资格”可能导致此问题。

示例

XYZ类放在文件“ a.swift”中,并在文件“ b.swift”中使用。但是,“ a.swift”的“目标成员资格”设置与b.swift的“目标成员资格”设置不同。

检查“目标会员”设置如下:

enter image description here

enter image description here

答案 5 :(得分:2)

不错, 如果您按照这些步骤进行操作 -

1-Clean Xcode(Cmd + Shif + K)

2-清除派生数据(Cmd + Shift + G)

输入此路径(〜/ Library / Developer / Xcode / DerivedData /)

3-退出并再次打开Xcode。

答案 6 :(得分:0)

这也发生在我身上,但清洁并没有解决它。什么是放弃和重新开放XCode。之后,所有的幻影错误都消失了。对于那些想知道的人,当你重新打开时,你关闭时打开的标签仍然会打开。

答案 7 :(得分:0)

更新到Xcode 11之后,我遇到了同样的问题。我尝试了所有提到的建议(清理文件夹,打开/关闭不同的设置,重新启动xCode),但没有任何帮助。另外,我在C中有一个大项目,所以,我想继续使用预编译的标头。

最后,我发现只需重启Mac OS 就可以解决问题! 这真是奇怪的行为,但是无论如何我还是很高兴找到了解决方案–当大量错误消息四处飘浮时,很难编写代码。

答案 8 :(得分:0)

打开终端并创建一个不错的小功能,可通过命令行访问...

nano ~/.bashrc

添加(在尖括号之间进行必要的替换)

cycle() {
  git stash save "BACKUP"
  git checkout <<SOME OTHER BRANCH>>
  git branch -D $1
  xcodebuild -allowProvisioningUpdates -workspace <<YOUR WORKSPACE>>.xcworkspace -scheme <<YOUR SCHEME>> -configuration Release clean
  git checkout $1
}

^X并按照提示进行保存,然后输入source ~/.bashrc以使其对当前终端会话可见。

确保您的分支机构已被推到原点,因为我们要删除它:)

使用cycle <<MY BRANCH>>调用该函数(一旦运行,您可能想调用git stash pop来还原所有工作副本更改)

希望它对您有用! Xcode,开始游戏吧!

答案 9 :(得分:0)

我不小心按下时在Xcode 10.1上安装了它:

Cmd + Shift + U -(测试版本

尝试清理(Cmd + Shift + K),然后:

Cmd + Shift + R 运行版本

答案 10 :(得分:0)

在Xcode版本10.1(10B61)上运行,我将构建设置“增加预编译头的共享”设置为NO。我在 .xcworkspace 中工作,许多项目共享相同的框架,并且没有Objective-C桥接标头(这意味着我自己没有添加obj-c代码)。我不确定Xcode默认何时删除 .pch 文件,但是我的项目中没有这些文件。

Xcode Build Settings: Increase Sharing of Precompiled Headers = NO

答案 11 :(得分:0)

我最近遇到过这个问题。在某些情况下,可以通过删除ModuleCache内的DerivedData文件夹以及DerivedData中的项目文件夹来解决此问题。请注意,在执行此操作之前必须退出Xcode。

答案 12 :(得分:0)

我从.pch文件中删除了一些额外的空格和额外的行,并且xcode停止了抱怨

答案 13 :(得分:0)

我在Xcode 5.1中也有同样的事情。

我通过确保#import&#39;

之间没有空行来修复它

答案 14 :(得分:0)

我遇到了类似的问题。

修复此问题的备用选项是 打开管理器并删除项目的派生数据或删除管理器项目选项卡中的所有项目。它工作正常..

答案 15 :(得分:0)

对我而言,这有助于清理项目。 XCode-&GT;制品 - &GT;清洁

答案 16 :(得分:-1)

尝试重新启动XCode,这对我有用:)