我有开关,我想检测是否有任何开关改变了位置,如果进行了改变,我需要开始我的行动。
在 NSUserDefaults
中切换存储位置
- (IBAction)saveSwitch:(id)sender
{
NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
[defs1 setBool: blackSwitch.on forKey: @"blackKey"];
NSUserDefaults *defs2 = [NSUserDefaults standardUserDefaults];
[defs2 setBool: greenSwitch.on forKey: @"greenKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
最佳答案
您可以随时调用 synchronize
发布通知
[[NSNotificationCenter defaultCenter] postNotificationName:@"MyAppSettingsChanged" object:self userInfo:nil];
然后在你的其他类(class)听通知。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppSettingsChanged:) name:@"MyAppSettingsChanged" object:nil];
-(void) onAppSettingsChanged:(NSNotification)notification
{
// settings changed
}
如果你愿意,你可以通过
NSDictionary
调用 postNotificationName
时进入 userInfo其中包含诸如哪些设置已更改之类的信息。
关于ios - 如何检测 NSUserDefault 的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10919885/