Swift 游乐场未显示错误

Swift Playground not showing errors

我开始 Swift 并使用 Swift macOS 游乐场中的教程。

所以示例代码是

var str = "Hello, playground"
str
str1

我在 str 1 上没有得到任何红色错误信息。只是控制台崩溃了

Playground execution failed: error: MyPlayground.playground:1:1: 
error: use of unresolved identifier 'str1'
str1
^~~~


* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
   * frame #0: 0x0000000102157360 com.apple.dt.Xcode.PlaygroundStub-macosx`executePlayground
     frame #1: 0x000000010215522a com.apple.dt.Xcode.PlaygroundStub-macosx`-[PlaygroundViewBridgeService execute] + 90

如果我更正代码,playground 会刷新并显示新数据,只是不会报告错误

如何阻止 Xcode 崩溃并按照记录的方式运行?

Xcode 版本 8.3 (8E162) macOS 10.12.4

我尝试删除所有 Xcode 文件(包括它在构建过程中创建的文件)并重新安装并使用不同的用户

您看到的是正确的行为。如果您希望 "red marks" 与您的代码内联,请使用真实项目。 Playgrounds 不会显示所有错误,如果它们确实显示它们,它们会按照您在控制台中的描述显示它们,首先显示您 在 "red marks" 中获得的相同消息然后是毫无意义的崩溃日志。 (崩溃的不是 Xcode,而是特殊的 playground 执行过程。)

所以,这就是你在操场上看到的:

这是您看到的应用项目:

文件 -> 游乐场设置
检查源代码的实时问题
select 显示所有问题单选按钮

Xcode 实际上,截至 2017 年 3 月,在 playground 中显示内联错误,就像在项目中编辑文件时一样。此行为在最近的更新中发生了变化,但我没有看到它的记录。我认为这是最新补丁引入的错误,或者可能更改了可以改回的默认设置。

编辑:事实上,我只是打开了一个我创建的补丁前的游乐场,并且错误显示为 inline

设置为

实际上 Playground 确实会显示 "red mark error on the left side of code" 并且还有一个自动选项来修复错误,就像常规项目一样。

我遇到了和你一样的问题(左边没有出现红色标记)。为我解决了什么:

  1. 右键单击问题导航器上的错误(左上面板)
  2. 在菜单 > 打开为 > 快速查看
  3. 然后再次执行相同的命令并打开为 > 游乐场页面

我在 Xcode 8.3.2

更新:同样适用于 Xcode 9.0

删除派生数据并退出 Xcode 对我有用。

在问题导航器中,右键单击错误 -> 以快速查看方式打开,然后 select 返回以 playground 方式打开。它对我有用。

有时此功能有效,但通常无效。 Xcode 8.3.3 这个功能有很多问题,让我避免使用 Playgrounds。

这是在 Xcode 9 Beta 6 中运行时的屏幕:

退出并重新打开 Xcode 似乎有助于让它再次工作,但在我试验代码时,这些工具似乎很容易混淆。

当我弄乱代码并导致问题时,Playgrounds 将停止尝试重新编译,然后我得到一个陈旧的反馈循环,并且不知道代码是否正常工作。

... 在我的 Playground 在 Xcode 9 Beta 6 中工作后不久它就停止工作了。错误停止显示内联,所以我建议在 http://bugreport.apple.com

提交更多错误报告