【问题标题】:Xcode 7.3 autocomplete is so frustratingXcode 7.3 自动完成功能太令人沮丧了
【发布时间】:2016-07-10 05:00:13
【问题描述】:

Xcode 中有一个新的自动完成功能。可能很有用,因为它不仅检查名称的开头等。但我发现它经常找不到类名或常量名等。我需要自己输入全名。总而言之,我发现它让我的生活更加艰难,编码更加耗时。有没有办法切换到以前的工作方式?

【问题讨论】:

  • 那些将 7.3 作为测试版处理的用户已经抱怨了好几个星期:stackoverflow.com/questions/35586056/…
  • 您可以在 developer.apple.com/downloads 上手动下载较旧的 xcode,例如xcode 7.2.1:adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…
  • 我不敢相信他们推出了一个重大版本,其中包含像自动完成功能一样重要的东西。就好像苹果公司没有人真正使用 Xcode 进行开发一样。
  • 这严重影响了我的工作效率,以至于我正在恢复到 Xcode 7.2.1,这样我实际上可以再次恢复正常的开发速度。我比平常更讨厌苹果这个。他们不仅强迫我去 El Capitan 运行 Xcode 7.3,而且当我到达那里时,我发现应许之地远非现实。他们会测试这些东西吗?一如既往地对“他们的”开发人员的典型不尊重。
  • Xcode 7.3.1 昨天发布,经过我的测试,这个错误仍然存​​在......但苹果说他们在 7.3.1 中修复了它。

标签: autocomplete xcode7.3


【解决方案1】:

Xcode 7.3.1

  1. 在 Xcode 中 > 首选项 > 文本编辑

    取消选中Enable type-over completions

  2. 重启 Xcode

【讨论】:

    【解决方案2】:

    似乎清除 XCode -> Preferences -> Text Editing 中的复选框“启用输入完成”就可以了。至少在我的情况下,自动补全回到了一种旧的方式,所以它可以自动补全我之前必须手动输入的类名。

    【讨论】:

    • 试过了,还是不能正确补全类名。
    • 我看不出有什么不同。仍然需要完成自定义名称... :(
    • 要完成这项工作,您必须打开索引。要打开索引,您无法在 Xcode 中执行此操作。您必须在 shell 中执行以下行。然后重新启动 Xcode。 % defaults delete com.apple.dt.Xcode IDEIndexDisable 见stackoverflow.com/questions/7328041/…
    【解决方案3】:

    这绝不是一个适当的解决方案,但它让我在过去几天(几乎)保持理智: 每次构建后,您需要删除您的派生数据文件夹。您可以在Xcode > Preferences > Locations > Derived Data 中找到此文件夹。只需将整个内容丢弃,它就会启动一个重新索引步骤,该步骤应该恢复正确的自动完成功能。 不幸的是,我发现一旦构建,自动完成行为就会恢复到其损坏状态。

    【讨论】:

      【解决方案4】:

      只需打开 Xcode 派生数据文件夹并删除该文件夹

      /Users/yourUserName/Library/Developer/Xcode/DerivedData

      然后重新启动 Xcode,现在自动完成功能就像一个魅力

      【讨论】:

      • 这对我有用,我不知道为什么它被负面评价。
      【解决方案5】:

      我的印象是自动完成的某些“部分”在一段时间后就会失败。我使用重新启动 Mac 以使其恢复工作。但有时它很快又失败了。 也许@Alex Bykov 的答案加上重启就可以解决问题。

      无论如何:Xcode 的自动完成总是很糟糕。 AppCode 曾经让它变得更好。不幸的是还没有 swift。

      【讨论】:

        【解决方案6】:

        关闭 Xcode,打开 Xcode,让它索引,它工作。

        【讨论】:

        • 遗憾的是,这是唯一的选择。
        【解决方案7】:

        找不到类名

        作为一种解决方法,您可以尝试按 Command + Shift + KCommand + B 几次,暂时有效。

        【讨论】:

        • 是否 Cmd + Shfit + K(清洁),Cmd + Shfit + Opt + K(清理构建文件夹),关闭 Xcode,删除 ~/Library/Developer/Xcode/DerivedData,重新启动 OS X,但它仍然没有帮助。 :-)
        • 我们有一个相当大的项目,从头开始编译需要 20 分钟,所以清理和重建不是我们的选择......
        【解决方案8】:

        Xcode 7.3.1

        我将分享另一个可能的原因,几天后我们发现了。我们有多种方案,在其中一个方案中,桥接头 正在导入一个不再存在的文件。因此,它在编译和运行时没有中断(标头属于另一个方案),但它导致自动完成中断(找不到任何 Objective-c 类)。

        希望对某人有所帮助!

        【讨论】:

          【解决方案9】:

          尝试了不同的方法后:

          • 删除派生数据
          • 在构建设置中启用切换模块
          • 完全清洁
          • 重新启动

          只有这样有效:

          • 在您的文件中找到@end 后任何被注释掉的 (/* abc */) 代码并删除。

          归功于 Max_B: https://forums.developer.apple.com/thread/7439

          就我而言,其他项目可以正确自动完成。如果您的所有项目都未能正确预测代码,则可能是另一个问题,其他答案可能有效。

          【讨论】:

            【解决方案10】:

            我在尝试制作 OS X 应用程序时遇到了这个问题,我能够通过确保实际下载 Xcode 7.3 文档和 OS X 10.11.4 文档来解决这个问题。这样做完全恢复了我的自动完成功能。我的完整说明如下以及我对类似问题的回答中:https://stackoverflow.com/a/39420664/3444925

            我自己也遇到了这个问题,在查看了所有其他类似的问题和答案后,我找不到解决方案。不过,我终于找到了适合我的方法。

            转到Xcode -> Preferences -> Components。在那里您可能会发现如下所示的屏幕:

            这表明文档尚未下载,因此,任何尝试在不下载文档的情况下重新索引或重新构建应用程序都会阻止您使用自动完成功能。

            一旦我下载了 Xcode 7.3 文档和 OSX 10.11.4 文档,这足以让我恢复自动完成功能(我正在尝试构建一个 OS X 应用程序,所以请随意下载尽可能多的文档与您相关)。

            【讨论】:

            • 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。
            • 我刚刚在这里添加了我的完整答案作为块引用@pableiros
            【解决方案11】:

            直到我创建了几个新的类文件,我才遇到这个问题。其他类运行良好,但自动完成不适用于新文件中的任何内容...

            FIX(对我而言) - 我必须将这些文件添加到我的所有目标中,包括单元测试目标,即使我还没有使用它们。

            【讨论】:

              猜你喜欢
              • 2012-12-17
              • 1970-01-01
              • 1970-01-01
              • 2013-01-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-07-28
              • 2016-07-14
              相关资源
              最近更新 更多