Print 语句在 iPad Playgrounds 中无法正常工作

Print statement doesn’t work properly in iPad Playgrounds

我正在尝试 运行 使用 iPad Playgrounds:

在异步闭包中打印“foo”的简单代码
import Foundation
import PlaygroundSupport

PlaygroundPage.current.needsIndefiniteExecution = true

DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
    print("foo")
}

但它无法在查看器中显示“foo”(出现一个可调整大小的小内嵌块)。

奇怪的是,

DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
    print("foo")
    let _ = 0
}

有效。 怎么了?这是一个错误吗?

另外,有没有办法像 Xcode Playgrounds 那样显示带有打印输出的控制台?我发现小“查看器”使用起来有点麻烦。

提前致谢!

编辑:我检查了 Xcode Playgrounds 在查看器中使用第一个代码显示 (),并正确显示 "foo" 添加了 let _ = 0。尽管如此,我在这两种情况下都可以看到输出 "foo",因为我在 Xcode 版本中有一个控制台输出。

对于您的控制台问题,cmd + shift + Y 将调出控制台区域,就像任何 Xcode 项目一样

关于正在发生的事情的更大问题...

asyncAfter函数的execute:参数接受的闭包是() -> Void类型。所以闭包是 returning Void, which is typedef'd to an empty tuple ()。所以查看器正在显示闭包的 return 值,一个空元组。