gpt4 book ai didi

ios - NSUserDefaults 中的数据在每次应用程序重新启动时都会消失

转载 作者:行者123 更新时间:2023-12-02 19:23:14 26 4
gpt4 key购买 nike

我看到了这种奇怪的行为,这似乎是特定于我的具体设备或我的构建环境的(我的同事在构建相同的代码时没有这个问题)。每次我从 Xcode 启动应用程序时,NSUserDefaults 中的数据就消失了。当我终止应用程序并重新启动它时,也会发生同样的情况。

我尝试重新启动 Xcode、我的笔记本电脑、设备、清理项目和派生数据 - 没有任何帮助。我在更新数据后调用 synchronize() ,所以它应该被持久化。但事实并非如此。我在控制台中没有看到任何错误。

这个问题的原因是什么?我该怎么做才能修复它?这是由一些奇特的隐藏项目设置引起的吗?

我还想知道数据是否在重新启动时重置或在调用 synchronize() 时不保存。我可以检查保存 NSUserDefaults 的文件内容吗?

<小时/>

更新:一个有趣的细节。在模拟器中终止应用程序后,我无法再次从 Xcode 启动它(收到“操作无法完成。(LaunchServicesError 错误 0。)”)。我必须使用 iOS Simulator -> Reset Content and Settings 才能再次在模拟器中运行应用程序。

<小时/>

更新2:我尝试按照建议找到iPhone模拟器存储NSSharedPreferences的文件here ,但它不存在。

最佳答案

没有什么花哨的设置可以禁用 NSUserDefaults 的持久化,但是,您需要考虑一些注意事项:

  1. 在从 NSUserDefaults 添加和检索对象之前,请确保归档和取消归档除简单值之外的对象
  2. 确保您了解持久数据的范围(应用程序、设备等),查看 NSUserDefault 类中的相应方法。
  3. 确保您的第 3 方库不会重置 NSUserDefault,这就是我的情况的问题。在应用程序启动时进行调试,并尝试确定您在开始时以及“丢失它”时是否具有该值。这对我的情况很有帮助。

关于ios - NSUserDefaults 中的数据在每次应用程序重新启动时都会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29829236/

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