ios – 观察NSUserDefaults中各个设置的更改

前端之家收集整理的这篇文章主要介绍了ios – 观察NSUserDefaults中各个设置的更改前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想观察[NSUserDefaults standardDefaults]中设置值的更改.我正在使用InAppSettingsKit来访问和更改程序中的设置.到目前为止,我刚刚假设所有值都已更改,并向所有观察者发送通知以根据新值进行更新.这效率不高,我只想在发生相关更改时向观察者发送通知.

有人可以建议一个有效的方法吗?

我可以假设来自[NSUserDefaults standardDefaults]的任何键的值永远不是数组,集合或字典吗? (使用设置对我来说是新的.如果我必须对变更进行强力扫描,将前字典与后字典进行比较,这可能会有所帮助.并且它不需要任何递归.)

如果这已经在InAppSettingsKit中,我还没有看到它,如果有人能指出它我会很高兴.

解决方法

没有系统通知可以保存更改默认值的详细信息.因为我没有使用它,所以我不能代表inappsettings套件.

响应更改的单个对象应保留其相关默认设置的本地值,并且仅在必要时执行昂贵的操作.因此,响应通知应该是一个简单的操作.如果您有两个单独的对象响应单个dafaults键中的不同子对象,那么您可能需要重新考虑默认值的组织方式.如果您有一些具体的例子,请将它们包含在您的问题中.

在重写整个应用程序之前,以“效率”的名义使用某种默认管理器对象进行测试,以确保您实际上浪费了大量的用户体验,影响了大量对象响应通知的时间,否则您正在过早优化,你知道他们对此的看法.

在回答问题的第二部分时,你无法做出这样的假设.任何属性列表对象都可以存储在用户默认值中.

猜你在找的iOS相关文章