要解决绑定的 @objc 变量 [Double] 数组的 setter 从未触发的问题,你可以尝试以下解决方法:
@objc dynamic var doubleArray: [Double] = [] {
didSet {
// 在 setter 中进行操作
}
}
@objc dynamic var doubleArray: [Double] = [] {
didSet {
willChangeValue(forKey: "doubleArray")
didChangeValue(forKey: "doubleArray")
}
}
注意,使用 KVO 来观察 Swift 数组的内容变化需要一些额外的处理。你可以使用 NSKeyValueObservation 类来观察数组元素的变化,并在 setter 中更新观察者。
private var observation: NSKeyValueObservation?
@objc dynamic var doubleArray: [Double] = [] {
didSet {
// 在 setter 中进行操作
}
}
func observeDoubleArray() {
observation = observe(\.doubleArray, options: [.old, .new]) { (object, change) in
// 数组元素发生变化时的处理
}
}
@objc dynamic var doubleArray: [Double] = [] {
didSet {
print("setter triggered")
}
}
通过以上方法,你应该能够解决绑定的 @objc 变量 [Double] 数组的 setter 从未触发的问题。