出于某种原因,在 Xcode 8.2 中,我的代码完成已停止工作。我已经清理了我的产品,重新启动了 Xcode,重新启动了我的计算机,并删除了派生数据,但仍然没有运气。我已将此提交给 Apple 支持。有没有人遇到过这个并能够解决它?
9 回答
更新: 根据@Dareon 解决方案,以下也适用于 Xcode 版本 8.3 (8E162) 和 8.3.2 (8E2002)。谢谢@Dareon 的确认。:)
我面临同样的问题,以下对我有用。
我正在使用 Xcode 版本 8.2.1 (8C1002)。
- 转到Xcode > 首选项 > 文本编辑
- 在代码完成下 - 取消选中“输入时建议完成”
- 退出 Xcode,然后重新启动 Xcode。
- 再次转到Xcode > 首选项 > 文本编辑
- 退出 Xcode,然后重新启动 Xcode。
- 现在转到代码完成并检查“输入时建议完成”。
- 尝试输入库函数或枚举并享受!
至少,它对我有用。
代码完成在 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
.
只是重新启动 Xcode 对我有用。
只需清理并构建您的应用程序一次Generic iOS Device
,这可能是由于一些编译时问题,这会禁用智能,我从 Xcode 8.2.1 开始看到这个错误。
对我有用的是删除派生数据:
Xcode 首选项 -> 位置 -> 箭头符号将您带到“派生数据” -> 删除文件夹
我也有这方面的重大问题。对我来说,当我进行编译时,我当前的工作源文件中的代码完成和格式会丢失。如果我返回并切换到不同的选项卡并返回,一两秒钟后它会再次开始工作。有时即使这样也行不通,我必须留在同一个选项卡中并打开一个不同的文件,然后返回。
如果我打开 Xcode 并让计算机休眠几个小时然后回来,即使这些方法也会失败。发生这种情况时,我必须退出 Xcode,有时强制退出它,然后在返回后执行上述步骤。但是在每次编译或编译并运行之后,我都不得不处理它。还没试过8.3 beta。
如果您有任何大型静态文字,请尝试将它们注释掉。这些有时会使编译器出错。
我遇到了同样的问题,“索引”不起作用。当我使用 pod 和静态库时。我所做的只是分别重建静态库。
希望这可以帮助。
没有其他方法对我有用,但是这种奇怪的方法确实有效:
- 退出 Xcode
- 进入你的主目录,如果你像我一样,那里充满了带有垃圾名称的空目录
- rmdir * (只要您关闭标签,这只会杀死空目录,这就是您想要的)
- 启动 Xcode,又是快乐时光