xcode代码感觉颜色/完成不起作用

mga*_*mga 69 xcode syntax-highlighting

编辑:这很奇怪...如果我在欢迎屏幕中双击项目的Recent Projects项目,代码感和着色工作正常,但如果我只是点击Open(欢迎屏幕右下角)它没有.打开File > Recent projects也不起作用,也不会.xcodeproj在Finder中双击该文件.


我已经工作了几个月(通过不同的安装/版本的XCode)的iPhone OS 3.0项目的代码意义不再适用.例如,如果我这样做NSString *myString,所有代码都是黑色的(没有着色,没有选项+双击,没有代码完成).Code Sense仅适用于我自己的类/方法/属性,但不适用于任何SDK类.如果我从头开始创建一个新项目,我确实可以完成所有这些工作.

我已经尝试在此项目中更改"所有配置的基本SDK".我已经尝试过"重建代码感知索引".我已经尝试过"清理所有目标".

所有首选项中的文档都已下载并正常运行.例如,如果我选择NSString上面的内容并在文档中执行右键单击 - >查找文本,我将获得包含该类所有引用的窗口.

任何想法将不胜感激.

Ark*_*ito 204

在Xcode 4中,我也找不到"Rebuild Code Sense"按钮,但是如果你转到Window - > Organizer,选择Project选项卡,然后单击Derived Data文件夹旁边的"Delete ..." ,它似乎有同样的效果.(我是从该尖端http://blog.slidetorock.com/xcode-4-code-sense-autocompletion-problems,这表明它有它反过来从/sf/ask/149663321/ -code-loses-syntax-coloring - 但是我没有在任何答案中看到它.非常好奇.)

  • 即使这样可行,但它每天都会发生几次!我最终不得不每天删除派生数据4-6次.它很烦人...... (11认同)
  • 我尝试重新启动xcode,并尝试将编译器重置为CGG/LLVM或从CGG/LLVM重置编译器,但其中有一些是有效的.这对我来说很有把握,谢谢! (4认同)
  • 这应该标记为新的最佳答案. (4认同)

小智 36

在执行以下步骤后,语法着色正在恢复:

  • 转到管理器>项目>从当前项目中删除派生数据
  • 清洁和建造
  • 关闭并退出XCode,然后重新打开该项目
  • 项目重建索引后,语法着色变得很好

PS

  • LLVM编译器3.0
  • 我使用-fno-objc-arc Complier Flags用于所有第三方库(例如ASIHTTPRequest)
  • 我的项目是从XCode 4.2创建的

  • 刚做完前两步,就行了!谢谢! (2认同)

Ser*_*nev 35

每次需要时都可以在终端运行

rm -fR ~/Library/Developer/Xcode/DerivedData
Run Code Online (Sandbox Code Playgroud)

工作良好.突出显示和codesense回到我的身边!有时需要Make Clean来支持它的工作.

注意:我看到它删除了snapshost和另一个Xcode4'功能'.但我们不使用它:)

  • 这比其他答案要好.它无需重启XCode即可运行. (5认同)
  • 简单而好的解决方案!谢谢! (2认同)
  • 同样在这里,我只是在大约半小时的搜索后使用它,它的工作原理!甚至不需要太多工作...... (2认同)

Tho*_*ler 12

我在Xcode 4中遇到了同样的问题,并通过将编译器从GCC 4.2更改为LLVM GCC 4.2来解决它.

  • 有趣.我更改了LLVM GCC 4.2,得到了一些编译错误,将其更改回Apple LLVM 3.1,语法高亮显示又回来了. (2认同)

Ste*_*her 10

在Xcode中获取项目信息并更改项目格式以匹配您正在使用的Xcode版本(截至本文撰写时,"Xcode 3.2兼容").

您也可以删除派生数据,但除非您更新了项目格式,否则错误几乎会立即重现.(甚至可能在更新项目格式后发生,但我以前必须每天多次删除DerivedData,而且我认为自修复项目以来我只做了一次.)

如其他地方所述,切换到LLVM可能会有所帮助.但是当我更新这个答案(2012)时,你应该使用LLVM.


boo*_*ker 10

我找到了避免这个bug的方法.我已经看到每次修改在prefix.pch中导入的文件时都会出现该错误.

尝试在UIKit.h和Fonudation.h上面的导入列表的顶部导入您自己的文件,而不是像每个人那样在最后导入.

在我的prefix.pch文件中:

#ifdef __OBJC__
    #import "myFile.h"
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif
Run Code Online (Sandbox Code Playgroud)


Gna*_*Dog 5

对于这个问题似乎有无数的建议原因和解决方案,我想我已经尝试了其中的大多数。最终对我有用的(在 Xcode 4.1 中)是:

  • 在项目导航器中删除对问题文件的引用
  • 从 Finder 中的项目文件夹中移动问题文件
  • 返回项目导航器,右键单击并选择将文件添加到...
  • 找到我刚刚移动的文件并将它们添加回项目中,确保选择“将项目复制到目标组的文件夹(如果需要)”。

代码感知已恢复。

更具体地说,我的确切问题是,当我通过在项目导航器中右键单击创建新类时,大约 30 - 40% 的时间代码感知在新类的头文件中不起作用。有趣的是,它在实施中确实起作用。

我尝试过失败的事情:

  • 删除管理器中的派生数据文件夹
  • 在 Finder 中删除派生数据文件夹
  • 从头开始创建一个全新的类(我不知道为什么这不起作用。)
  • 更改语法着色语言
  • 多次更改编译器的所有选项
  • 指定特定的标头搜索路径

我希望有其他可能的建议来结束这个问题,因为它真的很烦人!