代码之家  ›  专栏  ›  技术社区  ›  mga

Xcode代码检测颜色/完成不工作

  •  68
  • mga  · 技术社区  · 16 年前

    编辑: 这很奇怪…如果我在欢迎屏幕中双击该项目的“最近的项目”项,代码感和颜色就可以正常工作,但是如果我只是单击 Open (在欢迎屏幕右下角)没有。从打开 File > Recent projects 也不工作,双击 .xcodeproj 在取景器中查找文件。


    我已经工作了几个月的iPhoneOS3.0项目的代码感觉(通过不同的Xcode安装/版本)不再工作了。例如,如果我有 NSString *myString ,所有代码都是黑色的(没有着色,没有选项+双击,没有代码完成)。代码感知只对我自己的类/方法/属性“有效”,而不适用于任何SDK类。如果我从头开始创建一个新的项目,我会让所有这些工作正常进行。

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

    首选项中的文档都已下载并正常工作。例如,如果我选择 NSString 在上面右键单击->在文档中查找文本,我得到了包含对类的所有引用的窗口。

    任何想法都将受到极大的赞赏。

    23 回复  |  直到 9 年前
        1
  •  10
  •   Steven Fisher    14 年前

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

    您也可以删除派生的数据,但除非您更新了项目格式,否则错误几乎会立即再次出现。(IT) 可以 即使在更新了您的项目格式之后也会发生这种情况,但我以前每天都要删除几次派生数据,而且我认为自修复项目之后,我只删除过一次。)

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

        2
  •  204
  •   Community Mohan Dere    9 年前

    在Xcode4中,我也找不到“重建代码感知”按钮,但如果您转到“窗口->管理器”,选择“项目”选项卡,然后单击“派生数据”文件夹旁边的“删除…”,则效果似乎相同。(我从 http://blog.slidetorock.com/xcode-4-code-sense-autocompletion-problems ,这表明它是从 https://stackoverflow.com/questions/2138047/xcode-code-loses-syntax-coloring -但我没有在任何答案中看到它。非常好奇。)

        3
  •  36
  •   karlogeo    14 年前

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

    • 转到“组织者”>“项目”>“从当前项目中删除派生数据” 项目
    • 清理和生成
    • 关闭并退出Xcode,然后重新打开项目
    • 项目重新索引后,语法着色变得很好

    附笔。

    • LLVM编译器3.0
    • 我为所有第三方库(例如 ASIHTTPRequest)
    • 我的项目是从xcode 4.2创建的
        4
  •  35
  •   Sergey Kopanev    14 年前

    每次需要时都在终端运行

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

    工作良好。突出显示和代码感还给我! 有时需要清理以支持它的工作。

    注意:正如我看到的,它删除了Snapshost和另一个xcode4“特性”。但我们不使用它:)

        5
  •  12
  •   Thomas Müller    15 年前

    我在xcode 4中也遇到了同样的问题,通过将编译器从gcc 4.2更改为llvm gcc 4.2来解决这个问题。

        6
  •  10
  •   booker    14 年前

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

    尝试在uikit.h和fonudation.h上面的导入列表顶部导入您自己的文件,而不是像每个人一样在末尾导入。

    在我的prefix.pch文件中:

    #ifdef __OBJC__
        #import "myFile.h"
        #import <UIKit/UIKit.h>
        #import <Foundation/Foundation.h>
    #endif
    
        7
  •  4
  •   GnarlyDog    13 年前

    这个问题的原因和解决办法似乎有很多种,我想我已经尝试了其中的大多数。最终对我(在Xcode4.1中)起作用的是:

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

    代码检测已恢复。

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

    我尝试过的失败的事情:

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

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

        8
  •  4
  •   Felonious CodeMonk    12 年前

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

    defaults write com.apple.dt.XCode IDEIndexDisable 0
    

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

    defaults write com.apple.dt.XCode IDEIndexDisable 1
    
        9
  •  3
  •   drct    15 年前

    在xcode 4.0.2中也有同样的问题。代码感知只在两个文件中工作,一个.m文件及其对应的.h文件。除了重建代码感知索引,因为我在任何地方都找不到按钮,所以什么都没用。最后,我删除了相关的文件,.m、.h和.xib。创建了新文件,现在一切都按预期工作。

        10
  •  2
  •   Chris Frederick    14 年前

    除了Tewha所做的之外,我还必须单击“Rebuild code sense index”按钮。它位于“常规”选项卡的底部,在“获取项目信息”中。

        11
  •  2
  •   Andy    13 年前

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

        12
  •  1
  •   Sunil Gowda    15 年前

    从xcode4开始,语法着色、自动完成、跳到头文件等对我来说都是完全崩溃的。我的符号导航器视图完全为空。没有意识到我对自动完成的依赖程度,我的工作效率下降了一个因素。奇怪的是,我的团队成员看到了各种功能缺失的组合——只有我幸运地失去了一切。我是最新一代MBP的成员。

        13
  •  1
  •   MarkusEkblad    14 年前

    我只在一个.m文件上遇到了这个问题,在尝试了上面的许多操作之后,发现xcode在某个时候删除了.m扩展名。它仍然在项目导航器中列为“myclass.m”,但右键单击它并选择“在finder中显示”显示该文件刚刚被称为“myclass”(奇怪的是,它被放在en.lproj子文件夹中!).

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

        14
  •  1
  •   thatzprem    12 年前

    在构建设置中搜索“gcc_increase_precompiled_header_sharing” 把它改成是的。-这对我有用!

    enter image description here

        15
  •  0
  •   Chris Livdahl    15 年前

    对我有用的是将编译器改为“llvm compiler 2.0”。

        16
  •  0
  •   Niall    14 年前

    除了3或4.m/.h文件外,代码检测对大多数文件都有效。我尝试了上面的所有方法,唯一对我有用的就是DRCT的解决方案。我关闭了xcode,将项目移动到另一个文件夹,然后重新打开。

    现在,如果我右键单击项目导航器中的文件夹(或组)并选择“新建文件…”,代码检测将不起作用。

    如果相反,我使用主菜单并选择“文件”>>“新建”>>“新建文件”代码检测正常工作。

        17
  •  0
  •   Marko Hlebar    14 年前

    我今天遇到的一件影响代码颜色的事情是,我意外地在target->构建阶段->编译源中添加了一个头文件(.h)。一旦移除,代码颜色就神奇地回来了:)

        18
  •  0
  •   Anthony McCormick    14 年前

    我也有同样的问题,但是上面的任何一个问题都没有对我起作用,最后我不得不打开xcode go to

    File>Open Recent> Clear Menu
    

    这为我解决了这个问题,当我导入一个Github项目时,在清除了最近的内容,然后重新打开该项目之后,它破坏了我的代码意识,一切都正常工作。

        19
  •  0
  •   Dhaval H. Nena    11 年前

    有时在代码中的@end语句末尾添加多行注释会阻止Xcode6.0.1中的自动完成。我也有同样的问题。看看……

        20
  •  0
  •   Gajendrasinh Chauhan JonasG    10 年前

    为什么我又快乐了:)

    我有这个问题,但在禁用Xcode索引过程前的几天。

    通过将此命令放入终端来解决此问题。我希望它能帮助别人。

    defaults write com.apple.dt.XCode IDEIndexDisable 0
    

    是的,我用的是Xcode7.0

        21
  •  0
  •   GeneCode    10 年前

    在我的例子中,只有一个.m文件有这个问题。自动完成功能会弹出,但不会显示所有内容。例如,当我键入“ns”时,自动完成功能只会弹出“nsmutabledictionary”,而没有其他功能!我什么都试过了,到处找了1个多小时,但什么也没解决。

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

    罪魁祸首是: enter image description here

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

        22
  •  0
  •   Idan Yehuda    10 年前

    尝试关闭并打开Xcode IDE。

        23
  •  -1
  •   Hieu Tran    9 年前

    因为还是有人不知道为什么。打开与 XCODE 8.2 为我工作。似乎最新的Xcode有这个问题