Я хочу реализовать то, что ViewController
соблюдает свойство Model
.
Но метод observe()
changeHandler не вызывается.
Как мне исправить?
ViewController.swift
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Model.sharedInstance.observe(\.dataSource, options: .new) { (dataSource, change) in
print("updated! ", dataSource, change) // not called...
}
Timer.scheduledTimer(timeInterval: 2.0, target: Model.sharedInstance, selector: #selector(Model.update), userInfo: nil, repeats: true)
}
}
Model.swift
class Model: NSObject {
@objc dynamic var dataSource = [Dictionary<String, Any>]()
class var sharedInstance: Model {
struct Singleton {
static let instance: Model = Model()
}
return Singleton.instance
}
@objc func update() {
dataSource.append(["key": "value"])
}
}