56

出于某种原因,在 Xcode 8.2 中,我的代码完成已停止工作。我已经清理了我的产品,重新启动了 Xcode,重新启动了我的计算机,并删除了派生数据,但仍然没有运气。我已将此提交给 Apple 支持。有没有人遇到过这个并能够解决它?

4

9 回答 9

158

更新: 根据@Dareon 解决方案,以下也适用于 Xcode 版本 8.3 (8E162) 和 8.3.2 (8E2002)。谢谢@Dareon 的确认。:)

我面临同样的问题,以下对我有用。

我正在使用 Xcode 版本 8.2.1 (8C1002)。

  1. 转到Xcode > 首选项 > 文本编辑
  2. 在代码完成下 - 取消选中“输入时建议完成”
  3. 退出 Xcode,然后重新启动 Xcode。
  4. 再次转到Xcode > 首选项 > 文本编辑
  5. 退出 Xcode,然后重新启动 Xcode。
  6. 现在转到代码完成并检查“输入时建议完成”。
  7. 尝试输入库函数或枚举并享受!

至少,它对我有用。

于 2017-02-22T00:22:10.197 回答
15

代码完成在 Xcode 8.2.1 中也停止了对我的工作,并且没有任何清理、派生数据丢弃或重新启动来修复它。过了一会儿,我意识到代码完成只在我正在处理的扩展范围内被破坏。如果手动键入,代码将正确突出显示并且可以正常编译,因此这不是源抛出负责代码完成的任何解析器的问题。

在这个非常简单的示例中,这是它发生的特定上下文:

struct SomeStruct {

    static let foobar1 = {
        return NSBezierPath()
    }()

}

extension SomeStruct {

    static let foobar2 = {
        return NSBezierPath()
    }()

}

代码完成在 的实现块中工作正常foobar1,但不适用于foobar2. 似乎是扩展中存在的 astatic let似乎触发了它。结构和类都出现问题。

看起来像 Xcode 的一个错误,所以对我来说唯一的解决方法是foobar2进入SomeStruct.

于 2017-01-13T16:34:04.647 回答
5

只是重新启动 Xcode 对我有用。

于 2017-03-29T12:53:18.850 回答
2

只需清理并构建您的应用程序一次Generic iOS Device,这可能是由于一些编译时问题,这会禁用智能,我从 Xcode 8.2.1 开始看到这个错误。

于 2017-08-29T07:02:23.123 回答
2

对我有用的是删除派生数据:

Xcode 首选项 -> 位置 -> 箭头符号将您带到“派生数据” -> 删除文件夹

于 2018-02-12T16:54:19.957 回答
1

我也有这方面的重大问题。对我来说,当我进行编译时,我当前的工作源文件中的代码完成和格式会丢失。如果我返回并切换到不同的选项卡并返回,一两秒钟后它会再次开始工作。有时即使这样也行不通,我必须留在同一个选项卡中并打开一个不同的文件,然后返回。

如果我打开 Xcode 并让计算机休眠几个小时然后回来,即使这些方法也会失败。发生这种情况时,我必须退出 Xcode,有时强制退出它,然后在返回后执行上述步骤。但是在每次编译或编译并运行之后,我都不得不处理它。还没试过8.3 beta。

于 2017-01-25T04:19:20.480 回答
0

如果您有任何大型静态文字,请尝试将它们注释掉。这些有时会使编译器出错。

于 2017-09-25T19:10:29.830 回答
0

我遇到了同样的问题,“索引”不起作用。当我使用 pod 和静态库时。我所做的只是分别重建静态库。

希望这可以帮助。

于 2017-07-03T11:36:31.593 回答
-1

没有其他方法对我有用,但是这种奇怪的方法确实有效:

  1. 退出 Xcode
  2. 进入你的主目录,如果你像我一样,那里充满了带有垃圾名称的空目录
  3. rmdir * (只要您关闭标签,这只会杀死空目录,这就是您想要的)
  4. 启动 Xcode,又是快乐时光
于 2018-03-14T21:53:01.277 回答