我正在检查Combine,这是Apple的新框架。我创建了一个游乐场,并在macOS Mojave 10.14.5和Xcode 11.0 beta(11M336w)中运行。
这是我的代码:
import Combine
struct Article: Identifiable {
var id: Int
var title: String
}
final class Data: BindableObject {
let didChange = PassthroughSubject<Data, Never>()
var showFavouriteOnly = false {
didSet {
didChange.send(self)
}
}
var articles: [Article] = [.init(id: 1, title: "WWDC 2018"),
.init(id: 2, title: "WWDC 2019")] {
didSet {
didChange.send(self)
}
}
}
但是它失败并显示日志:
错误:无法查找符号: Combine.PassthroughSubject.send(A)->()
我在做什么错了?
答案 0 :(得分:1)
如果您创建了iOS游乐场,那么即使您在macOS 10.14上运行Xcode 11或更高版本,Combine
也应该可以使用。如果您创建了macOS游乐场,那么Combine
仅在macOS 10.15(Catalina)或更高版本上运行Xcode 11或更高版本时才有效。
如果您创建了iOS游乐场,则很可能在Combine(或Swift编译器)中发现了一个错误。您可以根据需要在Apple’s feedback site上进行举报。
答案 1 :(得分:0)
XCode 11 beta的第一个版本无法使用Combine,发行说明中对此进行了说明。
您应该下载第二个Xcode 11 beta(11M337n)