gpt4 book ai didi

nsuserdefaults - 特别详细说明了 NSUserDefaultsDidChangeNotification 上的默认值发生了哪些变化

转载 作者:行者123 更新时间:2023-12-03 22:41:23 25 4
gpt4 key购买 nike

我开始进入 NSUserDefaults 的内部密室,现在我可以使用提供的选择器加上 NSNotification 对象作为参数成功拦截 NSUserDefaultsDidChangeNotification 通知。然而,返回的 NSNotification 对象并没有像我预期的那样出现。

我期待的是:

1) 从通知中心接收 NSUserDefaultsDidChangeNotification。

2) 查询返回的提供的 NSNotification 对象,以获取包含至少一对键/值对的用户信息,其中 key="While you were asleep the following defaults changed"和 object="NSArray of application keys that have takes new values."

我得到的是:

1) 同上

2) 用户信息=无! (有谁知道为什么……?)

我的应用委托(delegate)是 NSUserDefaultsDidChangeNotification 的注册响应者,因此会将更改分发给需要了解其设置不同的任何对象。在我开始编写自己的代码来检测哪些键受到用户默认值更改的影响之前,任何人都可以建议我; (a) 是否必须确定自己发生了哪些变化——或者我是否遗漏了一些非常明显的事情? (b) 谁能指出一些文档(开发文档除外!),这些文档提供了如何以 Apple 批准的方式处理 NSUserDefaultsDidChangeNotification 的示例?如果可能的话,我不想重新发明轮子。我已经转储了返回的 NSNotification 对象的 dictionaryRepresentation——但显然,它也包含了 Apple 自己的所有键/值。再次感谢,提前。V.V.

最佳答案

您可以使用 KVO(键值编码) 来跟踪 NSUserDefaults 中的特定键。使用代码片段在此处查看我的答案:https://stackoverflow.com/a/10950217/388412

无需在 NSNotificationCenter 中注册为任何 NSUserDefaultsDidChangeNotifications 的一般观察者,您可以注册以观察 NSUserDefaults standardUserDefaults 对象的特定键的键值更改。

关于nsuserdefaults - 特别详细说明了 NSUserDefaultsDidChangeNotification 上的默认值发生了哪些变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7360067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com