Объединить в игровые площадки - PullRequest
5 голосов
/ 05 июня 2019

Я проверяю 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 ]

1 голос
/ 11 июня 2019

Если вы создали игровую площадку для iOS, Combine должно работать, даже если вы работаете с Xcode 11 или более поздней версией MacOS 10.14.Если вы создали игровую площадку MacOS, Combine будет работать только в том случае, если вы используете Xcode 11 или новее на MacOS 10.15 (Catalina) или новее.

Если вы создали игровую площадку iOS, то вполне возможно, что у вас естьнашел ошибку в Combine (или в компиляторе Swift).Вы можете сообщить об этом на сайте обратной связи Apple , если хотите.

0 голосов
/ 26 июня 2019

В первой версии бета-версии XCode 11 не работает Combine, это указано в примечании к выпуску.

Вы должны загрузить вторую бета-версию Xcode 11 (11M337n)

...