Dmi*_*try 3 variables nsuserdefaults swift swift2
我有一个变量从NSUserDefaults.standardUserDefaults()变成值
var GiftCount = NSUserDefaults.standardUserDefaults().valueForKey("Gift") as! Int
Run Code Online (Sandbox Code Playgroud)
我有一个名为setGiftCount()的函数...
当变量GiftCount发生变化时,我需要调用此函数...怎么做?
Dmi*_*try 21
第一
NSUserDefaults.standardUserDefaults().addObserver(self, forKeyPath: "Gift", options: NSKeyValueObservingOptions.New, context: nil)
Run Code Online (Sandbox Code Playgroud)
第二
deinit {
NSUserDefaults.standardUserDefaults().removeObserver(self, forKeyPath: "Gift")
}
Run Code Online (Sandbox Code Playgroud)
第三
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
setGiftCount()
}
Run Code Online (Sandbox Code Playgroud)
PS谢谢你的选票!
您可以将NSUserDefaultsDidChangeNotification的观察者添加到视图控制器:
添加:
NotificationCenter.default.addObserver(self, selector: #selector(userDefaultsDidChange), name: UserDefaults.didChangeNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)
删除它:
NotificationCenter.default.removeObserver(self, name: UserDefaults.didChangeNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)
并添加选择器方法:
func userDefaultsDidChange(_ notification: Notification) {
// your code... setGiftCount()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4809 次 |
| 最近记录: |