本文介绍了检测NSUserDefaults上的更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在开发一个带有最新SDK的iOS应用程序。
I'm developing an iOS application with latest SDK.
我想知道什么时候 NSUserDefaults
改变它的价值。
I want to know when a property on NSUserDefaults
changes it value.
我找到了,但它特定于macOS:
I have found this, but it is specific for macOS:
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
forKeyPath:[@"values." stringByAppendingString: @"MyPreference"]
options:NSKeyValueObservingOptionNew
context:NULL];
如何在iOS上执行此操作?
推荐答案
使用以下代码片段试用 NSUserDefaultsDidChangeNotification
:
try out the NSUserDefaultsDidChangeNotification
with this code snippet:
- (id)init {
self = [super init];
if(self) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(defaultsChanged:)
name:NSUserDefaultsDidChangeNotification
object:nil];
}
return self;
}
- (void)defaultsChanged:(NSNotification *)notification {
// Get the user defaults
NSUserDefaults *defaults = (NSUserDefaults *)[notification object];
NSLog(@"%@", [defaults objectForKey:@"yourIntrestedObject"]);
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
这篇关于检测NSUserDefaults上的更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!