我目前正在赶上 Swift 的最新语言开发,将旧的 Objective-C 代码移植到 Swift 5.5/5.6。在搜索属性观察者模式时,我发现了大量令人困惑的旧方法,这些方法似乎可以追溯到以前的 Swift 版本。
然而,我没有发现对象属性的观察者模式的本机实现(例如本机的实现Codable
)。
因此,在我开始为我的对象手动添加自定义观察者模式之前。我的问题:
Swift 5.5/5.6 中是否有属性观察器的本地实现?
- 没有
@objc
- 没有
NSObject
- 不
NotificationCenter
- 没有委托模式,我需要一个允许多个观察者的模式。
一个虚构的例子来说明我对属性观察者模式的意思:
class MyObject : Observable {
var value = 0
}
class MyUser : Observer {
func init(obj: MyObject) {
obj.addObserver(self)
}
func deinit() {
obj.removeObserver(self)
}
func onValueChanged(obj: AnyObject, name: String) {
// ...
}
}