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

时间:2009-10-26 20:05:41

标签: xcode syntax-highlighting

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


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

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

首选项中的文档已全部下载并正常运行。例如,如果我选择上面的NSString *myString并执行右键单击 - >在文档中查找文本,我得到窗口,其中包含对该类的所有引用。

任何想法都将不胜感激。

23 个答案:

答案 0 :(得分:204)

在Xcode 4中,我也找不到“Rebuild Code Sense”按钮,但如果你去Window - >管理器,选择项目选项卡,然后单击派生数据文件夹旁边的“删除...”,它似乎具有相同的效果。 (我从http://blog.slidetorock.com/xcode-4-code-sense-autocompletion-problems获得了这个提示,这表明它是从https://stackoverflow.com/questions/2138047/xcode-code-loses-syntax-coloring依次得到的 - 但我在那里的任何答案中都没有看到它。非常好奇。)

答案 1 :(得分:36)

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

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

P.S。

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

答案 2 :(得分:35)

每次需要时都在终端运行

rm -fR ~/Library/Developer/Xcode/DerivedData

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

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

答案 3 :(得分:12)

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

答案 4 :(得分:10)

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

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

在我的prefix.pch文件中:

#ifdef __OBJC__
    #import "myFile.h"
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

答案 5 :(得分:10)

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

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

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

答案 6 :(得分:4)

我也有这个问题。我之前关闭了索引以加快xcode操作,并且当时没有意识到它会阻止一些代码突出显示。如果您已完成此操作,则可以通过在终端输入此内容来重新打开索引:

defaults write com.apple.dt.XCode IDEIndexDisable 0

如果你想关闭索引,请将其输入终端:

defaults write com.apple.dt.XCode IDEIndexDisable 1

答案 7 :(得分:4)

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

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

恢复了代码感知。

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

我尝试过的失败的事情:

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

我喜欢其他可能的建议来结束这个问题因为它真的很烦人!

答案 8 :(得分:3)

在Xcode 4.0.2中遇到了同样的问题。除了两个文件,一个.m文件及其相应的.h文件之外,代码检测工作正常。尝试了一切 - 除了重建代码感应索引,因为我无法在任何地方找到按钮 - 没有任何效果。最后我删除了相关文件,.m,.h和.xib。创建了新文件,现在正在按预期工作。

答案 9 :(得分:2)

除了tewha之外我还要点击“Rebuild Code Sense Index”按钮。它位于项目“获取信息”中“常规”选项卡的底部。

答案 10 :(得分:2)

如果您发现这只发生在您的某些文件上,请确保.m文件是您的目标成员。

答案 11 :(得分:1)

我在我的一个.m文件中遇到了这个问题,在尝试了很多上面的事情后,结果证明XCode在某些时候删除了.m扩展名。它仍然在项目导航器中列为'Myclass.m',但右键单击它并选择Show in Finder显示该文件刚刚被称为'Myclass'(并且奇怪地放在en.lproj子文件夹中!)。

从项目导航器中删除引用,重命名和移动文件并将其重新添加到项目中解决了我的问题。

答案 12 :(得分:1)

自XCode4以来,语法着色,自动完成,跳转到头文件等完全被我破坏了。我的符号导航器视图完全为空。如果没有意识到我对自动完成的依赖程度如何,那么我的生产力就会下降一个因素。奇怪的是,我的队友们正在看到各种缺失功能的组合 - 只有我很幸运能够失去一切。 FWIW我是最新一代的MBP。

答案 13 :(得分:1)

  

在构建设置中搜索“GCC_INCREASE_PRECOMPILED_HEADER_SHARING”   并将其更改为YES。 - 这对我有用!

enter image description here

答案 14 :(得分:0)

为什么我再次开心:)

我遇到了这个问题,但有一天我禁用了XCode索引过程。

将此命令放在终端中解决了这个问题。我希望它有所帮助。

defaults write com.apple.dt.XCode IDEIndexDisable 0

是的,我正在使用Xcode 7.0

答案 15 :(得分:0)

在我的情况下,只有一个.m文件存在此问题。弹出的自动填充功能很好,但它并没有显示所有内容。例如,当我键入&#34; NS&#34;然后自动完成弹出仅与&#34; NSMutableDictionary&#34;只有而且没有其他的东西!我尝试了一切,到处搜索了1个小时+但没有任何修复。

然后出于好奇,我删除了我之前粘贴在.m文件末尾的注释块(在@end字下面)。删除后,自动完成将正常工作!

这是罪魁祸首: enter image description here

因此,如果您的自动填充仅在一个文件上失败,可能需要检查并删除@end字下面的所有内容。

答案 16 :(得分:0)

尝试关闭并打开XCODE IDE。

答案 17 :(得分:0)

我有完全相同的问题,但上面没有一个对我有用,最后我不得不打开xcode去

File>Open Recent> Clear Menu

这解决了我的问题,似乎当我导入一个github项目,在清除了最新版本之后搞砸了我的代码意义,然后重新打开项目一切正常。

答案 18 :(得分:0)

有时在代码中的@end语句末尾添加多行注释会阻止Xcode 6.0.1中的自动完成。我遇到过同样的问题。看看吧..

答案 19 :(得分:0)

我今天遇到的一件事,影响代码着色的是我在Target中意外添加了一个标题(.h)文件 - &gt;构建阶段 - &gt;编译源代码。一旦删除,代码颜色神奇地回来了:)

答案 20 :(得分:0)

代码检测适用于大多数文件,但3或4 .m / .h文件除外。我尝试了以上所有内容,唯一对我有用的是drct的解决方案。我关闭了xCode,将项目移动到另一个文件夹并重新打开。

我现在发现,如果我右键单击Project Navigator中的文件夹(或组)并选择“New File ..”Code Sense不起作用。

如果相反,我使用主菜单并选择'文件&gt;&gt;新&gt;&gt;新文件的代码检测工作正常。

答案 21 :(得分:0)

对我来说有用的是将编译器更改为“LLVM Compiler 2.0”。

答案 22 :(得分:-1)

对于仍然不知道原因的人。打开 XCode 8.2 为我工作。似乎最新的XCode得到了这个问题