Observe class attribute changes with the observe method. Only works with NSObject inharitance and @obj dynamic attributes, but inbult in UIKit and other libraries.
class Person: NSObject {
@objc dynamic var name: String
init(name: String){
self.name = name
}
}
let taylor = Person(name: "taylor Swift")
taylor.observe(.\name, options: .new) {
person, change in
print(person.name)
}
taylor.name = "Justin" //prints Justin
taylor.name = "Ed" //prints Ed