具有自定义类型的 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)
。
我创建了一个带有两个属性的 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)
。