我刚刚升级到新的 Xcode 4 ,代码没有应该是彩色的。
例如,字符串NSString
在我的自定义代码中没有着色,但是当我切换到Apple的代码(例如NSString.h
)时,一切都很好。
我该如何解决?
答案 0 :(得分:24)
这是最新XCode的已知错误。对于从XCode 3.X迁移到新版本的一些项目,会发生这种情况。对于某些人来说,它似乎有助于转到组织者,并在项目选项卡中删除代码检测无法正常工作的项目的派生数据。
如果你有一个小项目,它也可能有助于在XCode 4中创建一个新项目并从XCode 3项目中导入文件。
更新: XCode 4.0.1使情况好一点,至少在我的一些项目中,我有语法着色和代码感。但它还远未修复。
更新2: XCode 4.0.2没有太大变化。似乎问题与子项目有关,特别是静态库。根据{{3}}的评论,一些人通过将标题搜索路径从相对路径改为绝对路径来成功,例如而不是Foo/Bar
使用$(SOURCE_ROOT)/Foo/Bar
。这与将所有项目切换到XCode 3.1格式以及使用LLVM 2.0一起修复了很多。它还不完美,但可以使用。
更新3:在将子项目转换为独立项目并将它们放入this blog post(又名 XCode 4方式)之后,我现在已经有了完整的语法突出显示和代码完成。
我当前的环境现在是一个XCode 4工作区,每个项目都是3.1兼容的(而不是默认的3.2),LLVM GCC 4.2(系统默认)和标题搜索路径仍然是绝对的(使用{{1} })。
答案 1 :(得分:3)
我使用了未定义的宏,但是在构建设置中的预处理器宏中定义了那些宏。所以xcode4没有为那个未定义的宏生成任何错误。
采取措施解决。
如果你还没有得到这种颜色,请将你的项目重新安置到不同的位置,我改为我的桌面位置。
经过这些步骤,我的颜色在我眼中。
但这是非常糟糕的问题。我吸引了很多宝贵的时间。我认为这些步骤可能会对您有所帮助。
感谢。
答案 2 :(得分:1)
我和我有同样的问题。它是一个带盒子和花栗鼠的cocos2d游戏。让项目首先识别并找到用户搜索路径真是一团糟,所以我不打算搞砸那些。
我想指出的是,我确实有递归路径,而且我确实有相对路径,但我仍然遇到了问题。它发生在我添加了我正在使用的第三方SDK的新版本时。这是Testflight 083,我将其更新为1.0。我删除了旧版本,但只删除了引用。然后我从finder手动删除它。导入新的SDKv1文件夹并将其读入我的项目并删除旧的SDK0文件夹路径,只留下新添加的SDK1文件夹路径。出于某种原因,我注意到即使在v083中我在我的Prefix.pch文件中使用了#import,它仍然无法识别从AppDelegate调用方法。这意味着Prefix.pch中的#import由于某种原因无效。我必须单独将#import添加到我的AppDelegate文件中。这给了我重复的#imports,正如Jeeva上面所说的那样。这在我脑海中敲响了警钟。
因此,解决方案是去有效地删除Prefix.pch中的重复#import,因此只留下AppDelegate中的副本。它重新编制索引,CodeSense再次运行。谢谢Jeeva!
答案 3 :(得分:1)
这个问题让我感到疯狂,而且我已经放弃了修复它的希望,而不会对XCode的配置造成一些丑陋的黑客攻击。我通过这个论坛帖子经过了一堆堆溢出的时间。然后有一天,我偶然发现了它。我不确定你是否需要所有这些步骤,但我发现这是修复XCode索引问题的必然方法:
在终端中,运行:
sudo mdutil -a -i on
这似乎重置了聚光灯索引(我不太了解它因为我不使用聚光灯)。
在构建成功时,您现在应该再次使用适当的语法突出显示。我希望你们发现这个小小的发现和我一样有用:)
编辑:
我应该补充一点,当调试器在应用程序启动期间挂起模拟器时,语法突出显示有时似乎会重新中断。我只是想通过更加小心地让流程挂起来避免这种情况。
EDIT2 :(抱歉第一次贡献)
适用于XCode 4.6和4.6.2。