结合在操场上

时间:2019-06-05 14:15:51

标签: swift swift-playground combine

我正在检查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)->()

我在做什么错了?

2 个答案:

答案 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)