具有自定义类型的SwiftUI可绑定属性将无法编译

时间:2019-06-08 02:44:16

标签: swiftui

我创建了一个具有两个属性的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 个答案:

答案 0 :(得分:3)

您正在呼叫didChange(self),这会导致错误。请致电didChange.send(self)