【问题标题】:Xcode 4 code sense is not workingXcode 4 代码感知不起作用
【发布时间】:2011-07-22 20:04:23
【问题描述】:

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

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

没有运气。

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

【问题讨论】:

  • 您是否安装了昨天发布的 4.0.1 更新?发行说明中的​​ Fixed a bug that prevented indexing of some projects 听起来可能与您的问题有关。
  • 安装 4.0.1,删除旧索引(派生数据),清理,重建,不幸的是还是一样。我认为问题与旧 3 项目的更新有关,我在 xcode 4 中创建了一些新项目,它们似乎可以工作。
  • 只是为了更新,今天一切似乎都好得多了。也许 4.0.1 更新毕竟起到了作用。
  • 很抱歉,这开始是一场闹剧,xcode 代码感觉没有按预期工作。
  • 我也有同样的问题。 XC4中的3.2项目。 4.0.1 没有修复它。还尝试了所有其他“快速”修复选项(清理、删除派生数据、安装文档等),但均无济于事。可悲的是,我认为目前唯一的选择是在 XC4 中生成新项目并复制所有文件 - 大型项目的主要麻烦:(

标签: xcode xcode4 codesense


【解决方案1】:

试试这个:

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

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

【讨论】:

  • 我试过了,但没有帮助(正如我在问题中已经说过的那样)。我不再有这个问题,因为我不再使用xcode,我已经切换到app code。
  • 这解决了我的问题。最新的 Xcode 版本 4.3.1 (4E1019)。谢谢。
  • 这没有解决我的问题,看看@Chris 解决这个问题,很好的解决方案
  • @Saikat,它帮助了我。谢谢!
【解决方案2】:

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

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

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

  • 退出 XCode。

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

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

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

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

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

【讨论】:

  • 感谢您的链接。对于它的价值,我发现我不必显式删除任何文件来获得在 Xcode 4.2.1 中工作的代码意义;通过管理器窗口(即您的前三个项目符号)删除“派生数据”就足够了。谢谢。
  • 这对我有用,但请注意,您应该先尝试打开 Organizer 窗口并清除 DerivedData 并退出并重新打开 Xcode,然后再删除任何其他文件。
  • 从 .xcoeproject 包中删除适当的文件结束了我的痛苦。
  • 删除“派生数据”在大多数情况下为我解决了问题,但 +1 为所有情况提供了全新的指南!
  • 单独清除派生数据并没有这样做,但是删除您在 .xcodeproject 中建议的文件是可行的。高五!
【解决方案3】:

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

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

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

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

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

【讨论】:

  • 默认包含这些吗?我用的是xocde 5,找不到。
  • 是的,同样的事情对我有用。即使在 Xcode 6 中仍然会发生
  • 当我更改为“iOS 设备”而不是模拟器时,我的 Xcode 失去了意义。没有多少派生数据清除工作。我毫无希望地尝试了这种方法,它成功了!
  • @Bren PCH 文件默认没有出现在 XCode 中。
【解决方案4】:

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

我发现真正的原因在于目标的构建设置。我将所有内容从 Header Search Paths 移至 User Header Search Paths 并且已修复。就我而言,我正在使用的框架是 RestKit。

顺便说一句,我想出这个是因为我在我的项目中添加了另一个项目 (QuickDialog),我很好奇它使用的是 User Header Search Paths,而不是 Header搜索路径Here is the difference between them.

【讨论】:

  • 啊哈!我一直在使用 RestKit,只是遇到了麻烦。我会仔细检查这是否是问题并在这里报告。
  • 不。我认为它会......它似乎有帮助,但不,我觉得我只是少删除派生数据。
  • 在那之后,对于不同的构建,我还不得不多次删除派生数据。在那之后,我再也不必这样做了。但是,是的,我仍然不知道这是如何工作的......
  • 这似乎对我有用。我正在使用一个静态库,这个自动完成让我发疯了
【解决方案5】:

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

【讨论】:

    【解决方案6】:

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

    【讨论】:

    • 同时删除@end 字下方的任何评论块。这对我来说是个问题。
    【解决方案7】:

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

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

    【讨论】:

      【解决方案8】:

      关闭所有 xcode 窗口

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

      【讨论】:

        【解决方案9】:

        我详细写过here

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

        【讨论】:

        • 坦克,但这并不符合我的问题,我的所有课程都有问题,不,我的源代码不在本地化目录中。
        • 您是否尝试过升级到 xcode 4.0.2。我认为它更稳定
        【解决方案10】:

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

        当然,我尝试了这篇文章中提供的解决方案,但都没有奏效。但是在 Finder 中移动项目位置的建议带回了一些 Code Sense,但这些建议没有任何意义。 我最终删除了我的项目并从 git 存储库中重新克隆了它。这为我带来了 Code Sense...

        【讨论】:

          【解决方案11】:

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

          在 Lion 上运行 Xcode 4.3.1

          希望这对某人有所帮助。

          【讨论】:

            【解决方案12】:

            来自this comment here,我最终能够调试问题,这似乎是一个错误的 -w 标志,表明 clang 预处理器无法正确识别。基本上,运行

            defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

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

            【讨论】:

              【解决方案13】:

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

              【讨论】:

                猜你喜欢
                • 2010-12-10
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-04-17
                • 2017-06-18
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多