HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – NSUserDefaults和KVO问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的应用程序中使用NSUserDefaults,我希望在更改特定值时收到通知.为此,我在viewDidLoad中添加了以下行:
NSUserDefaults *setTings = [NSUserDefaults standardUserDefaults];
[setTings synchronize];
[setTings addObserver:self forKeyPath:@"pref_server" options:NSKeyValueObservingOptionNew context:NULL];

以及要通知方法

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{

    NSLog(@"Change");

    NSUserDefaults *setTings = [NSUserDefaults standardUserDefaults];
    if (object == setTings && [keyPath isEqualToString:@"pref_server"])
    {
        NSLog(@"Server did change");
    }

}

不幸的是,后者永远不会被调用… @“pref_server”是我在Root.plist中设置的项目标识符,在SetTings.bundle中.我究竟做错了什么?

解决方法@H_403_12@
我建议使用适当的通知NSUserDefaultsDidChangeNotification.

在xcode中的Apple文档中搜索AppPrefs,它将显示一个示例应用程序,它完全符合您的要求.只需编译并运行!它利用了NSUserDefaultsDidChangeNotification.

这是用于注册观察者的代码

[[NsnotificationCenter defaultCenter] addObserver:self
                                         SELEctor:@SELEctor(defaultsChanged:)
                                             name:NSUserDefaultsDidChangeNotification
                                           object:nil];

大佬总结

以上是大佬教程为你收集整理的ios – NSUserDefaults和KVO问题全部内容,希望文章能够帮你解决ios – NSUserDefaults和KVO问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。