Xcode 8.2 代码完成不工作
Xcode 8.2 Code Completion Not Working
出于某种原因,在 Xcode 8.2 中,我的代码完成已停止工作。我清理了我的产品,重新启动了 Xcode,重新启动了我的计算机,并删除了派生数据,但仍然没有成功。我已将此提交给 Apple 支持。有没有人 运行 以前参与过这个问题并且能够修复它?
代码完成在 Xcode 8.2.1 中也对我停止工作,并且没有多少 clean-up、派生数据丢弃或重新启动修复它。过了一会儿,我意识到代码完成只是在我正在处理的扩展范围内被破坏了。如果手动输入,代码将被正确突出显示并且可以正常编译,因此这不是源代码丢弃负责代码完成的任何解析器的问题。
在这个非常简单的示例中,这是它发生的具体上下文:
struct SomeStruct {
static let foobar1 = {
return NSBezierPath()
}()
}
extension SomeStruct {
static let foobar2 = {
return NSBezierPath()
}()
}
代码完成在 foobar1
的实现块中工作正常,但不适用于 foobar2
。似乎触发它的扩展中存在 static let
。 struct 和 class.
都会出现此问题
看起来像 Xcode 的错误,所以对我来说唯一的解决方法是将 foobar2
移动到 SomeStruct
的主要定义中。
我也遇到过这个问题。对我来说,每当我进行编译时,代码完成和格式设置都会在我当前的工作源文件中丢失。如果我返回并切换到不同的选项卡然后返回,一两秒钟后它又开始工作了。有时即使那样也行不通,我必须留在同一个选项卡中并打开另一个文件,然后导航回来。
如果我让 Xcode 打开并让计算机休眠几个小时然后再回来,即使这些方法也会失败。当发生这种情况时,我必须退出 Xcode,有时强制退出,然后在返回后执行上述步骤。但是在每次编译或编译之后我都不得不弄乱它并且 运行 我这样做了。还没有尝试过 8.3 测试版。
更新:
根据@Dareon 下面的解决方案也适用于 Xcode 版本 8.3 (8E162) 和 8.3.2 (8E2002)。谢谢@Dareon 的确认。 :)
我遇到了同样的问题,以下对我有用。
我正在使用 Xcode 版本 8.2.1 (8C1002)。
- 转到 Xcode > 首选项 > 文本编辑
- 在代码完成下 - 取消选中 'Suggest completions while typing'
- 退出 Xcode,然后重新启动 Xcode。
- 再次转到 Xcode > 首选项 > 文本编辑
- 退出 Xcode,然后重新启动 Xcode。
- 现在转到代码完成并检查 'Suggest completions while typing'。
- 尝试输入库函数或枚举并尽情享受吧!
至少,它对我有用。
重新启动 Xcode 对我有用。
我遇到了 "indexing" 不起作用的相同问题。因为我使用的是 pod 和静态库。我所做的只是分别重建静态库。
希望对您有所帮助。
只需在 Generic iOS Device
上清理并构建您的应用程序一次,这可能是由于某些编译时问题导致智能禁用,我从 Xcode 8.2.1 开始看到此错误。
如果您有任何大的静态文字,请尝试将它们注释掉。这些有时会使编译器出错。
对我有用的是删除派生数据:
Xcode 首选项 -> 位置 -> 箭头符号带你到 "Derived Data" -> 删除文件夹
没有其他方法对我有用,但这种奇怪的方法有用:
- 退出Xcode
- 进入您的主目录,如果您像我一样,该目录中充斥着垃圾名称的空目录
- rmdir *(只要你离开标签,这将只杀死空目录,这就是你想要的)
- 启动Xcode,又是快乐时光
出于某种原因,在 Xcode 8.2 中,我的代码完成已停止工作。我清理了我的产品,重新启动了 Xcode,重新启动了我的计算机,并删除了派生数据,但仍然没有成功。我已将此提交给 Apple 支持。有没有人 运行 以前参与过这个问题并且能够修复它?
代码完成在 Xcode 8.2.1 中也对我停止工作,并且没有多少 clean-up、派生数据丢弃或重新启动修复它。过了一会儿,我意识到代码完成只是在我正在处理的扩展范围内被破坏了。如果手动输入,代码将被正确突出显示并且可以正常编译,因此这不是源代码丢弃负责代码完成的任何解析器的问题。
在这个非常简单的示例中,这是它发生的具体上下文:
struct SomeStruct {
static let foobar1 = {
return NSBezierPath()
}()
}
extension SomeStruct {
static let foobar2 = {
return NSBezierPath()
}()
}
代码完成在 foobar1
的实现块中工作正常,但不适用于 foobar2
。似乎触发它的扩展中存在 static let
。 struct 和 class.
看起来像 Xcode 的错误,所以对我来说唯一的解决方法是将 foobar2
移动到 SomeStruct
的主要定义中。
我也遇到过这个问题。对我来说,每当我进行编译时,代码完成和格式设置都会在我当前的工作源文件中丢失。如果我返回并切换到不同的选项卡然后返回,一两秒钟后它又开始工作了。有时即使那样也行不通,我必须留在同一个选项卡中并打开另一个文件,然后导航回来。
如果我让 Xcode 打开并让计算机休眠几个小时然后再回来,即使这些方法也会失败。当发生这种情况时,我必须退出 Xcode,有时强制退出,然后在返回后执行上述步骤。但是在每次编译或编译之后我都不得不弄乱它并且 运行 我这样做了。还没有尝试过 8.3 测试版。
更新: 根据@Dareon 下面的解决方案也适用于 Xcode 版本 8.3 (8E162) 和 8.3.2 (8E2002)。谢谢@Dareon 的确认。 :)
我遇到了同样的问题,以下对我有用。
我正在使用 Xcode 版本 8.2.1 (8C1002)。
- 转到 Xcode > 首选项 > 文本编辑
- 在代码完成下 - 取消选中 'Suggest completions while typing'
- 退出 Xcode,然后重新启动 Xcode。
- 再次转到 Xcode > 首选项 > 文本编辑
- 退出 Xcode,然后重新启动 Xcode。
- 现在转到代码完成并检查 'Suggest completions while typing'。
- 尝试输入库函数或枚举并尽情享受吧!
至少,它对我有用。
重新启动 Xcode 对我有用。
我遇到了 "indexing" 不起作用的相同问题。因为我使用的是 pod 和静态库。我所做的只是分别重建静态库。
希望对您有所帮助。
只需在 Generic iOS Device
上清理并构建您的应用程序一次,这可能是由于某些编译时问题导致智能禁用,我从 Xcode 8.2.1 开始看到此错误。
如果您有任何大的静态文字,请尝试将它们注释掉。这些有时会使编译器出错。
对我有用的是删除派生数据:
Xcode 首选项 -> 位置 -> 箭头符号带你到 "Derived Data" -> 删除文件夹
没有其他方法对我有用,但这种奇怪的方法有用:
- 退出Xcode
- 进入您的主目录,如果您像我一样,该目录中充斥着垃圾名称的空目录
- rmdir *(只要你离开标签,这将只杀死空目录,这就是你想要的)
- 启动Xcode,又是快乐时光