77

我在 Xcode 4 中运行一个“旧”的 Xcode 3 项目,并且代码感觉不适用于我自己的类。我试过以下:

  • 清理/重建
  • 删除派生数据
  • 安装 4.3 文档
  • 重新开始

没有任何运气。

有时代码意义有效,但大多数情况下我只是得到“没有完成”。

4

13 回答 13

128

尝试这个:

打开管理器,然后打开项目选项卡。

清除“派生数据”。然后 Xcode 应该重新索引您的项目,并且代码感觉应该可以工作。至少对我有用。

于 2011-06-05T13:45:59.853 回答
107

我知道这已经晚了,但供参考:http ://sealedabstract.com/code/when-xcode-4s-code-completion-autocomplete-breaks/

  • 关闭项目,让 XCode 仍在运行。

  • 打开 XCode 的 Organizer 窗口,转到 Projects 选项卡,选择正确的项目,然后点击“Derived Data”旁边的 Delete 按钮。

  • 退出 XCode。

  • 在 Finder 中导航到项目的 .xcodeproject 文件。右键单击,选择“显示包内容”。</p>

  • 保留 project.pbxproj 文件,但删除 project.xcworkspace 文件、所有 .pbxuser 文件和整个 userdata 文件夹。

  • 在 XCode 中打开项目。您将看到 XCode 占用 CPU 大约 10-60 秒,具体取决于项目的大小。活动窗口将显示“索引”</p>

  • 当您的 CPU 峰值返回地球时,代码完成将再次工作。

那里有很多删除,所以请小心,但这绝对对我有用。

于 2011-11-17T10:51:26.187 回答
26

我一直在这样做,它对我来说已经工作了多次(在之前尝试了上述所有方法之后)。

编辑:现在我只需按空格键、退格键(mac 版本)并重建...效果很好。然后,记得滚动(有时颜色直到你滚动到某个地方才会显示)

  1. 找到您的前缀文件:“ProjectName_prefix.pch”。
  2. 注释掉一些行。(基本上改)
  3. 构建你的项目,不管它是否失败。
  4. 取消注释它。
  5. 再次构建。

我打赌只有第 2 步(修改前缀)是做什么的,但这些基本上可以让你重新开始跑步。突然间,一切都神奇地重新着色并完成功能。

祝你好运,如果这不能解决它,也许尝试对你的依赖 pch 文件(three20 或 FB api's)执行此操作

于 2012-04-20T21:55:53.080 回答
5

清除“派生数据”仅对我暂时有效。我必须这样做,然后每天重新启动 Xcode 3-4 次才能让代码感知再次工作。

我发现真正的原因在于目标的构建设置。我将所有内容从标题搜索路径移动到用户标题搜索路径,并且它已修复。就我而言,我正在使用的框架是 RestKit。

顺便说一句,我想出了这个是因为我在我的项目中添加了另一个项目(QuickDialog),我很好奇它使用的是User Header Search Paths,而不是Header Search Paths这是它们之间的区别。

于 2012-07-06T10:36:58.463 回答
4

您可以通过更改这样的构建设置来解决该问题,PreCompile Prefix Headers :NO

于 2012-09-15T07:08:43.190 回答
3

仅供参考,如果一个文件没有代码意义,但项目的其余部分有,请检查它是否已添加到目标。一旦我这样做了,我就在该文件中恢复了代码意义。

于 2012-05-16T18:41:14.740 回答
2

已经很长时间了,但答案就是将代码移动到一个新文件夹中,并且代码感知现在应该可以工作了。

这发生在我添加了一个新的 Objective-C 类并且代码意义仅适用于新添加的 .m 和 .h 文件(在本文中的 XCode 4 最新更新中)时。

于 2011-08-21T06:54:18.137 回答
2

关闭所有 xcode 窗口

从 xcode>window>organizer 中删除所有项目并重新启动项目。它现在将正确地感知和索引您的项目。

于 2012-03-12T07:47:10.263 回答
1

我在这里详细写过。

基本上我的解决方法是本地化。我从 xcode 3.2.5 升级到 xcode 4,然后用内置的界面构建器搞砸了,不小心打开了 XIB 文件的本地化,这将我的源文件放在 en.lproj 目录中。将它们移回 Classes 文件夹后,它运行良好。

于 2011-04-15T10:40:43.657 回答
0

同样,为了帮助其他人解决这个问题,就我而言,这是在升级到 Xcode 4.3 时发生的。

当然,我尝试了这篇文章中提供的解决方案,但都没有奏效。但是在 Finder 中移动项目位置的建议带回了一些 Code Sense,但这些建议没有任何意义。

我最终删除了我的项目并从 git 存储库中重新克隆了它。这为我带来了 Code Sense...

于 2012-02-25T22:11:17.893 回答
0

每当我的 Xcode 的代码感应停止工作时,我都会在后台打开第二个项目(它通常在我第一次打开项目时工作,但过了一段时间代码感觉不再工作)。所以我要做的是在 Xcode 中打开第二个项目。Xcode 将开始索引第二个项目,并且神奇地我的主项目的代码意义又回来了。

在 Lion 上运行 Xcode 4.3.1

希望这可以帮助某人。

于 2012-04-25T18:21:50.283 回答
0

对我来说,这仅仅是因为该文件没有目标成员资格。如果前几个答案对您不起作用,请转到您的 .m 文件(可能是您遇到问题的这个文件),打开实用程序视图(编辑 -> 实用程序 -> 显示文件检查器)并在“目标成员”检查您希望此文件所属的目标。

于 2013-08-20T15:03:42.300 回答
0

这里的评论中,我能够最终调试问题,这似乎是一个错误的 -w 标志,clang 预处理器无法正确识别。基本上,运行

defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

in Terminal 增加了索引器的详细程度,应该可以帮助您追踪问题。打开 Console.app 并查找来自 Xcode 的消息,搜索字符串IDEIndexingClangInvocation帮助我找到了它们。

于 2013-02-20T17:19:14.083 回答