I have the following code aiming to catch the event of a NSUserDefaults value changing for a particular key.
[[NSUserDefaults standardUserDefaults] addObse
Swift 5 Version:
extension UserDefaults {
@objc dynamic var keyPath: Int {
return integer(forKey: "keyPath")
}
}
HINT: make sure the var
has exactly the same as the keyPath
and where you use the observer do:
var observer: NSKeyValueObservation?
override func viewDidLoad() {
super.viewDidLoad()
observer = UserDefaults.standard.observe(\.keyPath, options: [.initial, .new], changeHandler: { (defaults, change) in
//Do something
})
}
deinit {
observer?.invalidate()
}