Xcode 8.2代码完成不工作

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

代码完成在Xcode 8.2.1中也停止了工作,并且没有任何清理,派生数据丢弃或重新启动修复它。 过了一段时间,我意识到代码完成只在我正在处理的扩展范围内被破坏。 如果手动input,则代码将被正确突出显示,并且可以很好地编译,所以不会出现源代码完成代码分析负载的问题。

在这个非常简单的例子中,下面是它发生的具体环境:

struct SomeStruct { static let foobar1 = { return NSBezierPath() }() } extension SomeStruct { static let foobar2 = { return NSBezierPath() }() } 

代码完成在foobar1的实现块内foobar1 ,但不能用于foobar2 。 这是在一个扩展,似乎触发它的static let存在。 这个问题出现在结构和类。

看起来像Xcode的一个bug,所以唯一的解决方法是将foobar2移动到foobar2的主要定义。

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

我面临同样的问题,并为我工作。

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

  1. 转到Xcode>首选项>文本编辑
  2. 在“代码完成”下 – 取消选中“在input时提示完成”
  3. 退出Xcode,然后重新启动Xcode。
  4. 再次转到Xcode>首选项>文本编辑
  5. 退出Xcode,然后重新启动Xcode。
  6. 现在进入代码完成并检查 “在input时提示完成”。
  7. 尝试打字库function或枚举和享受!

至less,它为我工作。

刚刚重新启动XCode为我工作。

我也有这个问题。 对于我来说,当我进行编译时,代码完成和格式化会丢失在我当前的工作源文件上。 如果我返回并切换到另一个选项卡并返回,一两秒钟后又开始工作。 有时甚至不起作用,我必须留在同一个标​​签,并打开一个不同的文件,然后导航回来。

即使这些方法失败了,如果我离开Xcode打开,让电脑睡几个小时,然后回来。 当发生这种情况时,我必须退出Xcode,有时强制退出,然后再回到上面的步骤。 但是每次编译或编译运行之后,我都不得不把它弄乱。 还没有尝试过8.3testing版呢。

只需在Generic iOS Device上清理并构build应用程序,可能会有一些编译时问题,从而导致智能失效,从Xcode 8.2.1开始我就看到了这个错误。

我有同样的问题,“索引”没有工作。 正如我正在使用一个pod和静态库。 我所做的只是分别重build静态库。

希望这可以帮助。

如果你有任何大的静态文字,请尝试将它们注释掉。 这些有时可能会使编译器绊倒。