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

SwiftUI Bindable properties with custom types won't compile

我创建了一个带有两个属性的 SwiftUI Bindable class,例如

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) }
    }

}

这完全符合预期。但是,当我尝试添加具有自定义类型(作为结构、class 或元组)的 属性 时,编译失败:

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

说我"Cannot call value of non-function type 'PassthroughSubject'"。如果我尝试

它也会以同样的方式失败
    public var sunriseSunset: (Date, Date)? = nil {
        didSet { didChange(self) }
    }

“诊断”按钮没有用;它只是说 "Failed to build active schema."

哪些类型可以用作 Bindable class 的属性?

您正在调用 didChange(self),这导致了错误。请改为调用 didChange.send(self)