我已经升级到 MacOS 11 (Big Sur) Beta 4。和 Xcode 12 beta 4。
我有一个 Swift Playground 和 Combine 出版商:
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) })
升级后,我的游乐场开始失败并显示以下消息:“'flatMap(maxPublishers:_:)' 仅在 macOS 11.0 或更高版本中可用”。swift 编译器不会在代码中指出任何错误。如果将代码放在普通的 Xcode 命令行应用程序项目中,则代码可以正常工作。
可以通过将发布者包含在可用性检查中来减轻错误,例如if #available(macOS 11.0, *) { }
在操场中。
我假设这是一个错误,我已经向 Apple 提出了问题。
或者这是预期的行为?如果是……有没有办法向操场暗示要假设的部署目标?如果它没有正确选择它所运行的操作系统的实际版本。
谢谢!