我已经升级到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) })
升级后,我的游乐场开始失败,并显示消息:"flatMap(maxPublisher:_:('仅在macOS 11.0或更新版本中可用swift编译器没有指示代码中有任何错误。如果把代码放在一个普通的Xcode命令行应用程序项目中,它也能很好地工作。
可以通过将发布者封装在可用性检查中(如操场中的if #available(macOS 11.0, *) { }
(来减轻错误。
我认为这是一个错误,我已经向苹果公司提出了问题。
还是这是意料之中的行为?如果是。。。有没有一种方法可以向操场暗示要假设什么部署目标?如果它没有正确地获取它运行的操作系统的实际版本。
谢谢!
如果您想显式地为您的游乐场指定不同的部署目标,您可以在游乐场设置中这样做。方法如下:
-
打开你的游乐场文件。转到菜单栏并选择";编辑"gt;"显示项目导航器";以显示左侧的文件列表
。 -
在项目导航器中,您应该可以看到您的游乐场文件。右键点击(或控制点击(并选择";显示文件检查器">
-
在文件检查器中,您可以找到一个名为
"部署目标"> -
您可以将其更改为其他macOS版本(如果需要(。