我已升级到 MacOS 11 (Big Sur) Beta 4。和 Xcode 12 beta 4。
我有一个 Swift 游乐场,结合了合并发布者:
Just([1,2,3])
.setFailureType(to: Error.self) // Make the compiler pick up new API in MacOS Big Sur
.flatMap { $0.publisher }
.sink(receiveCompletion: { print($0) }, receiveValue: { print($0) })
升级后,我的 Playground 开始失败,并显示以下消息: “'flatMap(maxPublishers:_:)' 仅在 macOS 11.0 或更高版本中可用”。 swift 编译器未指示代码中的任何错误。如果将代码放置在普通的 Xcode 命令行应用程序项目中,则代码可以正常工作。
可以通过将发布者包含在可用性检查中来减轻错误,例如游乐场中的
if #available(macOS 11.0, *) { }
。
我假设这是一个错误,并且我已向 Apple 提交了问题。
或者这是预期的行为吗?如果是……有没有办法向游乐场暗示要假设的部署目标?如果它没有正确获取正在运行的操作系统的实际版本。
谢谢!
如果您想为 Playground 显式指定不同的部署目标,您可以在 Playground 设置中执行此操作。方法如下:
打开你的游乐场文件。转到菜单栏并选择“编辑器”>
“显示项目导航器”以显示左侧的文件列表
侧面。
在项目导航器中,您应该会看到您的游乐场文件。 右键单击(或按住 Control 单击)它并选择“显示文件检查器”。
在文件检查器中,您可以找到一个名为
的部分
“部署目标。”
您可以将其更改为不同的 macOS 如果需要版本。