Emi*_*mil 40
您可以使用以下方法收听NSUSerDefaultsDidChange-notifications:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(defaultsChanged) name:NSUserDefaultsDidChangeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)
每当NSUserDefaults发生变化时,defaultsChanged
都会被调用.
[[NSNotificationCenter defaultCenter] removeObserver:self];
当你想要停止监听这些通知时,不要忘记打电话(当对象被取消分配时你也应该这样做).
Jos*_*eph 13
语法适用于Swift 2.使用Swift,您可以执行以下操作来订阅NSUserDefaults的更改:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "defaultsChanged:", name: NSUserDefaultsDidChangeNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)
然后创建如下方法:
func defaultsChanged(notification:NSNotification){
if let defaults = notification.object as? NSUserDefaults {
//get the value for key here
}
}
Run Code Online (Sandbox Code Playgroud)
快速 4
在 viewController 中注册观察者,
NotificationCenter.default.addObserver(self, selector: #selector(settingChanged(notification:)), name: UserDefaults.didChangeNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)
选择器实现
@objc func settingChanged(notification: NSNotification) {
if let defaults = notification.object as? UserDefaults {
if defaults.bool(forKey: "enabled_preference") {
print("enabled_preference set to ON")
}
else {
print("enabled_preference set to OFF")
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18347 次 |
最近记录: |