3

我已经升级到 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 提出了问题。

或者这是预期的行为?如果是……有没有办法向操场暗示要假设的部署目标?如果它没有正确选择它所运行的操作系统的实际版本。

谢谢!

4

0 回答 0