Xcode 8.2代码完成不起作用

eth*_*x27 56 xcode xcode8.2

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

Chi*_*may 154

更新: 根据@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. 尝试输入库函数或枚举并享受!

至少,它对我有用.

  • 我们能否将此作为正确的答案?它为我节省了很多时间.现在已经面对这几天了. (3认同)
  • 有趣......这很有效.我首先尝试没有重新启动Xcode,它根本不起作用.没有代码完成功能,我完全迷失了.. (2认同)

cha*_*les 15

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

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

struct SomeStruct {

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

}

extension SomeStruct {

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

}
Run Code Online (Sandbox Code Playgroud)

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

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

  • 是的,打算添加:https://openradar.appspot.com/radar?id = 4929038300741632 (2认同)

cat*_*ore 5

刚重启XCode对我有用.