Связываемые свойства SwiftUI с пользовательскими типами не компилируются - PullRequest
2 голосов
/ 08 июня 2019

Я создал класс SwiftUI Bindable с двумя свойствами, например

public class Clock: BindableObject {

    public let didChange = PassthroughSubject<Clock, Never>()

    public var time: Date = Date() {
        didSet { didChange.send(self) }
    }

    public var useMilitaryTime = false {
        didSet { didChange.send(self) }
    }

}

. Он работает точно так, как ожидалось.Но когда я пытаюсь добавить свойство с пользовательским типом (в виде структуры, класса или кортежа), оно не компилируется:

    public var sunriseSunset = (Date(), Date()) {
        didSet { didChange(self) }
    }

, говоря «Я не могу вызвать значение не-функции»введите 'PassthroughSubject' ".Это также терпит неудачу таким же образом, если я пытаюсь

    public var sunriseSunset: (Date, Date)? = nil {
        didSet { didChange(self) }
    }

Кнопка диагностики не помогает;он просто говорит, что «не удалось создать активную схему».

Какие типы можно использовать в качестве свойств класса Bindable?

1 Ответ

3 голосов
/ 08 июня 2019

Вы звоните didChange(self), что вызывает ошибку.Позвоните didChange.send(self) вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...