Xcode代码感觉颜色/补全不起作用


70

编辑:这很奇怪...如果我在欢迎屏幕中双击该项目的“最近的项目”项,则代码感测和着色效果很好,但是如果我单击Open(在欢迎屏幕中右下角)则不行。从中打开均File > Recent projects无效,.xcodeproj在Finder中双击该文件也无效。


我已经工作了几个月(通过XCode的不同安装/版本)的iPhone OS 3.0项目的代码含义不再起作用。例如,如果我这样做NSString *myString,则所有代码都将是黑色的(无色,无Option +双击,无代码完成)。Code Sense仅对我自己的类/方法/属性“有效”,而对任何SDK类无效。如果我从头开始创建一个新项目,那么我确实可以完成所有这些工作。

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

首选项中的文档均已下载并可以使用。例如,如果我选择NSString上面的内容并右键单击->查找文档中的文本,则会获得带有该类所有引用的窗口。

任何想法将不胜感激。


我只有一个项目有类似的问题。代码感测的颜色/补全功能可以很好地用于其他项目。解决了吗
阿米特·瓦格拉

有点...新的SDK更新没有问题。我已经注意到的是,它需要几秒钟的色彩解析来完成
MGA

1
每次更改添加到prefix.pch项目文件中的文件时,我都会丢失自动完成功能和文本颜色。下面的答案给了我自动完成功能和文本颜色,但是当我更改在prefix.pch中导入的文件时,该错误仍然出现。任何人都发现了如何解决此问题?
booker 2012年

从Xcode 4.4开始,这个问题似乎要好得多。
makdad 2012年

Answers:


10

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

您也可以删除派生数据,但是除非您更新了项目格式,否则该错误几乎立即会再次发生。(可能即使在更新项目格式后发生这种情况,但是我曾经不得不每天删除DerivedData几次,而且我认为自修复项目以来,我只做过一次。)

如其他地方所述,切换到LLVM可能会有帮助。但是,当我更新此答案(2012)时,无论如何您都应该使用LLVM。


重新启动Xcode几次并来回切换此首选项几次为我修复了它。我将编译器设置为LLVM 2.1。
山姆·索菲斯

204

在Xcode 4中,我也找不到“ Rebuild Code Sense”按钮,但是如果转到Window-> Organizer,选择Project选项卡,然后单击Derived Data文件夹旁边的“ Delete ...”。 ,似乎有相同的效果。(我从http://blog.slidetorock.com/xcode-4-code-sense-autocompletion-problems获得了该提示,这表明它是从/programming/2138047/xcode依次获得的-code-loses-syntax-coloring-但我在任何答案中都没有看到它。很好奇。)


4
我尝试重新启动xcode,并尝试将编译器复位到CGG / LLVM,或从CGG / LLVM复位,但是其中的任何一个都不起作用。这帮了我大忙,谢谢!
adam.wulf

1
还曾为我的XCode 4
barfoon

1
这是可行的,并且是对烦人的错误的快速简便的修复。每个人都应该尝试此操作,然后再尝试一些其他...创造性的解决方案。
默多克

11
即使这种方法有效,一天也会发生几次!我最终不得不每天删除4-6次派生数据。它非常烦人...
scooter133 2012年

1
你救了我的命。我欠你一个:)
marzapower 2012年

37

我执行以下步骤后,语法着色将恢复正常工作:

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

聚苯乙烯

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

为我工作,Xcode 4.3.2。我尖叫是因为它工作了一半时间。谢谢!!!
Feloneous Cat '04

前2个步骤对我有用!谢谢!xcode 4.3.2。升级以支持新的iPad,但在途中丢失了自动完成功能。
桑加斯(2012年

35

每次需要时都在终端中运行

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

工作良好。突出显示并感性地回到我身边!有时需要Make Clean才能恢复正常工作。

注意:正如我所见,它删除了snapshost和另一个Xcode4“功能”。但是我们不使用它:)


5
这比这里的其他答案更好。而且它无需重启XCode就可以工作。
Shiki 2012年

2
简单而出色的解决方案!谢谢!
neowinston 2012年

2
同样在这里,经过大约半小时的搜索,我才使用它,并且可以正常工作!甚至不需要太多工作...
David Skrundz 2012年

12

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


这为我们解决了它。谢谢!
Taum

这为我解决了!谢谢。
凯尔

2
有趣。我将其更改为LLVM GCC 4.2,遇到了一些编译错误,将其更改为Apple LLVM 3.1,语法高亮显示回来了。
凯夫拉尔2012年

也无法使用LLVM GCC 4.2进行编译,但是恢复自动完成的最简单方法是更改​​为LLVM 4.2->尝试编译->回到LLVM 3.1,然后我又得到了它。但是有人发现如何避免这个错误?
预订者,2012年

我在Xcode 5.0.2中遇到了相同的问题。此页面上的其他步骤均无效。我已将目标构建选项编译器更改为“默认编译器(Apple LLVM 5.0)”,即使该选项已设置为“ Apple LLVM 5.0”。我必须特别选择默认选项,它立即为我修复了该选项。
折衷的DNA

10

我找到了一种避免此错误的方法。我看到每次修改在prefix.pch中导入的文件时,都会出现该错误。

尝试将自己的文件导入到UIKit.h和Fonudation.h上方的已导入列表的顶部,而不要像每个人一样在结尾处导入。

在我的prefix.pch文件中:

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

1
固定为我..爱你。头疼
Morgz 2012年

1
很棒:)谢谢...编辑:开个玩笑,更改顺序不让我进行项目编译。第2编辑:如果myFile.h使用<UIKit / UIKit.h>,则需要小心...现在可以工作!
VTS12

4

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

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

代码感知已恢复。

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

我尝试过的失败的事情:

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

我希望有其他建议来结束这个问题,因为这确实很烦人!


在XCode 9.3beta中,.hpp文件在文件夹引用的子文件夹中对我有用。它们仅由clang module.modulemap文件引用,这些文件定义了每个模块对.hpp的使用。9.1和9.3beta都被破坏了,以上所有失败的项目对我来说也都失败了。只需删除文件夹引用并将其添加回即可。错误突出显示返回。
Asher '18

4

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

defaults write com.apple.dt.XCode IDEIndexDisable 0

如果要关闭索引编制,请在终端输入以下内容:

defaults write com.apple.dt.XCode IDEIndexDisable 1

3

在Xcode 4.0.2中也有同样的问题。除了两个文件(一个.m文件及其对应的.h文件)之外,其他代码均适用于代码检测。尝试了所有操作-除了重建代码感知索引之外,因为我在任何地方都找不到按钮-没有任何效果。最后,我删除了相关文件.m,.h和.xib。创建了新文件,现在一切正常。


2

除了要做些什么,我还必须单击“ Rebuild Code Sense Index”按钮。它位于项目“获取信息”中“常规”选项卡的底部。


2

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


好东西。这正是我所需要的。
Dev Kanchen 2012年

谢谢!由于一些原因,我使语法高亮显示失败,但这一次就是这样。
形成表格

1

自XCode4以来,语法着色,自动完成,跳转到头文件等对我来说都是完全无效的。我的符号导航器视图完全为空。没有意识到我对自动完成的依赖程度如何,我的生产率下降了一个因素。奇怪的是,我的队友正在看到各种缺少功能的组合-只有我很幸运,失去了一切。FWIW我正在使用最新的MBP。


1

我遇到了完全相同的问题,但是以上这些对我都没有作用,最终我不得不打开xcode去

File>Open Recent> Clear Menu

这为我解决了这个问题,似乎当我导入一个github项目后,在清除“最近记录”然后重新打开该项目后,搞砸了我的代码意识,然后一切正常。


1

我仅在我的一个.m文件中就有这个问题,并且尝试了上面的许多事情之后,结果发现XCode在某个时候删除了.m扩展名。它仍在项目导航器中列为“ Myclass.m”,但右键单击它并选择“在finder中显示”显示该文件仅被称为“ Myclass”(并且奇怪地放在了en.lproj子文件夹中!)。

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


1

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

在此处输入图片说明



0

除3个或4个.m / .h文件外,大多数文件都可以使用代码检测功能。我尝试了上面的所有内容,而对我唯一有用的是drct的解决方案。我关闭了xCode,将项目移至另一个文件夹,然后重新打开。

我现在发现,如果我在项目浏览器中右键单击一个文件夹(或组),然后选择“新建文件。”,Code Sense将不起作用。

如果相反,我使用主菜单并选择“文件>>新建>>新建文件”,代码感觉效果很好。


0

我今天遇到的一件事,影响代码着色的是,我不小心在目标->构建阶段->编译源代码中添加了头文件(.h)。删除后,代码颜色神奇地恢复了:)


0

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


0

为什么我再次开心:)

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

通过在终端中放置此命令来解决它。希望对您有所帮助。

defaults write com.apple.dt.XCode IDEIndexDisable 0

是的,我正在使用Xcode 7.0


重罪CodeMonk答案也很有用。
Gajendra K Chauhan

0

就我而言,只有一个.m文件有此问题。自动完成功能会很好地弹出,但不会显示所有内容。例如,当我键入“ NS”时,仅使用“ NSMutableDictionary”仅弹出自动完成功能,没有其他功能!我尝试了所有内容,到处搜索了1小时以上,但没有解决问题。

然后出于好奇,我删除了一个粘贴在.m文件末尾(在@end词下)的注释块。删除后,自动完成功能将再次正常运行!

这是罪魁祸首: 在此处输入图片说明

因此,如果您的自动完成仅对一个文件失败,则可能需要检查并删除@end word下面的所有内容。



-2

对于某人仍然不知道为什么。使用XCode 8.2打开对我有用。似乎最新的XCode遇到了这个问题


这是对帖子的评论,而不是答案。虽然您当时可能是新用户,可能没有添加注释的正确权限,但建议您删除此答案。
App Dev Guy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.