iOS 4.2 中的 NSUserDefault 问题

Posted

技术标签:

【中文标题】iOS 4.2 中的 NSUserDefault 问题【英文标题】:NSUserDefault problem in iOS 4.2 【发布时间】:2010-12-28 04:29:09 【问题描述】:

我准备了一个“Settings.bundle”文件,其中包含带有属性的 plist。但是,在我编译并加载应用程序后,我在 [NSUserDefaults standardUserDefaults] 中找不到这些属性。在我去设置并修改那里的属性后,所有修改的属性都可以在 [NSUserDefaults standardUserDefaults] 中找到(未修改的仍然丢失)。这是 ios 4.2 中的一个已知问题吗?我在 iOS 3.2 中尝试了相同的程序,没问题。

【问题讨论】:

查看***.com/questions/4675877/…用户pwc的答案 【参考方案1】:

我编写了一个库,该库复制了应用程序内 setting.bundle 的设置,在此期间,我发现 setting.bundle 中的默认值未注册,除非用户在设置应用程序中转到应用程序的设置。这是我编写的函数,它通过 settings.bundle 中的所有 plist 并注册用户默认值:http://bitbucket.org/keegan3d/inappsettings/src/2053acd0524e/InAppSettings/InAppSettingsReader.m

我不确定为什么它可以在 iOS 3.2 中为您工作,但可能是这些设置是从以前的版本注册的。

【讨论】:

谢谢。它适用于模拟器,但不适用于真实设备。你知道为什么吗? 嗯不确定,请尝试从手机中删除该应用程序,然后再构建和安装。也许设备上有挥之不去的偏好。

以上是关于iOS 4.2 中的 NSUserDefault 问题的主要内容,如果未能解决你的问题,请参考以下文章

IOS入门 SandBox Plist NSUserDefault

NSUserDefault 无法在 iOS8 的扩展中保存和加载

我如何访问 iOS 项目的 NSUserDefault 以做出原生反应?

iOS 中 关于 NSUserDefault中存储可变数组的问题

使用NSUserDefault存储大量数据有啥缺点

Xcode 中的 NSUserDefault