【问题标题】:Code highlighting and autocomplete gone in XcodeXcode 中的代码高亮和自动完成功能消失了
【发布时间】:2012-02-09 08:13:23
【问题描述】:

我在一个团队中工作,最近我们在 Xcode 项目中丢失了所有语法高亮。这是我们所有环境的问题,因此本地机器不是问题。我们都清除了派生数据,删除了 /var/folders/ 中的预编译头文件。此外,每个人都在他们的控制台中收到以下错误:

1/12/12 9:40:42.126 PM Xcode:  IDEIndexingClangInvocation: Failed to save PCH file: /Users/sashimiblade/Library/Developer/Xcode/DerivedData/Project-gfgcpcthwcmainhhtgpavaqacqkr/Index/PrecompiledHeaders/Project-Prefix-gwxtmfzfhffkhmardmbbgmpwrntg_ast/Project-Prefix.pch.pth

有什么想法吗?这几天让我发疯了,如果没有自动完成或语法突出显示,我就活不下去!

【问题讨论】:

  • 我唯一一次看到自动完成功能失败是在升级后,当时文档集由于某种原因被清除了。检查下载下的 Xcode 首选项,并确保那里的文档列为Installed!不确定索引错误。
  • 什么时候开始发生的?您是否处于源代码控制之下?如果是这样,也许您可​​以将其缩小到签入并查看某些项目文件中发生了什么变化??
  • 该控制台错误表明它正在尝试将派生数据放入 system 库 (/Library) 而不是通常存在的用户库中。 (上面写着/Users/../Library,相当于/Library。)这是不寻常且错误的。我会检查你的构建设置有什么变化。听起来确实有些东西已经损坏了。大概你也不能建造?
  • 奇怪的是我可以构建,并且在二进制文件中一切正常,只是代码突出显示和自动完成没有了。
  • 很高兴您解决了问题。我有类似的问题,并记录了一个通用的解决方案(不涉及不断重新启动 Xcode!)...在这里查看我的答案:stackoverflow.com/a/10245076/123632

标签: xcode cocoa xcode4 xcode4.2 xcode4.3


【解决方案1】:

好的,我想通了。我的项目的框架区域中有 Core-Plot,Xcode 正在寻求将 Core-Plot 解析为一个框架,即使它只是一个二进制文件和相关的标头。所以我将 Core-Plot 与我的其他类一起移动到一个文件夹中,从库搜索路径中删除了旧的 Core-Plot 路径,并且还清除了标题搜索路径,现在我的自动完成和代码突出显示又回来了!我认为这是 Xcode 中的一个错误...

【讨论】:

  • 是的,CodeSense 对我来说也倾向于每天 2-3 次。我通常只是触摸我的 Prefix.pch 文件,它可以解决所有问题。我什至编写了一个名为 pch_touch 的简单脚本,它可以让我为所有不同的项目触摸 pch 文件。非常棒的东西。
  • 太棒了。我在我的 .pch 文件中添加了一个换行符,然后点击了 command-b,一切都一起工作了。在它消失之前,我永远不知道我有多喜欢自动完成功能!
  • @Eric 非常好,我只是在 .pch 文件上做了同样的事情,然后 sintax 突出显示回来了。我改用删除所有派生数据文件夹。也许你应该在某处写下答案。
  • @Leonardo 我已将其添加为 2-3 个位置的答案。 :) 但我认为 Xcode 4.4 或 4.5 最终解决了这个问题(请参阅发行说明)
【解决方案2】:

我不想获得任何代表 - 只是想让上面 cmets 中提到的 @EricGoldberg 和 @CornPuff 脱颖而出。它只是一个巨大的时间节省器。

Xcode 中的自动补全功能消失了吗? (老实说,这很常见)

只需按照这个超级简单的步骤:

  • 在您的 YourAppName-Prefix.pch 文件中添加一个新行(或任何其他简单的编辑)

  • 保存

  • 重建您的项目

而且,它会自动神奇地修复! :-)

【讨论】:

  • 该策略通常有效,但我认为它基本上等同于删除您的派生数据(这应该删除与您的项目相关的预编译头文件)。我相信,当您更改 .pch 文件或删除派生数据时,编译器会重新编译 .pch 文件中的所有相关标头,以使构建环境的符号保持最新。当我觉得有问题时,我通常只是删除所有派生数据(在 Organizer->Projects->Your Project->Delete 按钮旁边的“Derived Data”),以确保没有任何东西对环境造成干扰。
猜你喜欢
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
相关资源
最近更新 更多