11. Trouble Shoot
• inherit from NSObject (NSKeyValueObserving)
• Data should add `dynamic` (Objective-C runtime)
• KeyPath wrong
12. Pros & Cons
• Easy to write
• Less code
• Decouple
• ….
• Hard to debug
• Hard to maintain
• Leak
• ….
13. new in Swift 4
• Still inherit from NSObject
• Use closure instead of callback function
• No need to remove Observer
• More like Swift
14. new in Swift 4
@objcMembers class Foo: NSObject {
dynamic var value: String = ""
}
let foo = Foo()
let observation = foo.observe(.value) { (foo, change) in
print("value: (foo.value)")
}