0

我目前正在赶上 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) {
    // ...
  }
}
4

0 回答 0