A good tutorial to make Block Base KVO Here
class CounterModel : NSObject { @objc dynamic var value = 0 @objc dynamic var messages = [String]()}model.observe(\.value, options: [.initial]) { (model, change) in self.label.text = String(model.value)}