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

但是它失败并显示日志:



我究竟做错了什么?

最佳答案

如果您创建了iOS游乐场,那么即使您在macOS 10.14上运行Xcode 11或更高版本,Combine也应该可以使用。如果您创建了macOS游乐场,则只有在macOS 10.15(Catalina)或更高版本上运行Xcode 11或更高版本时,Combine才有效。

如果您创建了iOS游乐场,那么很可能在Combine(或Swift编译器)中发现了一个错误。如果愿意,可以在Apple’s feedback site上报告。

关于swift - 结合在操场上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56462348/

10-10 04:09