是这样的吗?当您在App Store上向应用程序提交更新或重置时,NSUserDefaults会重置吗?

我的应用程序在更新时崩溃但在完全下载时没有崩溃 - 所以我正在尝试确定更新的会话中可能与新下载的会话有什么不同。

干杯, 尼克。

有帮助吗?

解决方案

除非用户删除应用,否则通常不会重置它们。对于基本数据,NSUserDefaults是保存数据的最佳方式,如首选项,日期,字符串等。如果您希望保存图像和文件,文件系统是更好的选择。

其他提示

我相信答案是肯定的,它会坚持下去。这也完全记录在Apple iPhone OS编程指南的应用程序目录章节中。

  1. 直接回答发布的问题:是。
  2. 你的问题: 由于逻辑问题,您的应用程序崩溃了。假设您将对象存储在默认值中,并且应用程序会在启动时(或其他位置)检查它的值。在您更新时,您可以更改其检查或使用方式,例如你期望一个值,但对象是零,反之亦然。这可能会导致SIGABRT或EXC_BAD_ACCESS。

如果您拥有Core Data模型且您在模型中更改了某些内容并进行了更新,而无需管理迁移,则可能是您的应用在更新时崩溃的原因......

我有类似的经历。我们的应用程序在Settings.Bundle / Root.Plist中存储版本号。这将通过iPhone设置应用程序显示。我们发现在安装时,版本号从应用程序包中加载 - 因此版本号是正确的。但是在更新时,版本号不会更改。这给人的印象是用户正在运行以前版本的应用。我们没有任何与版本号相关联的逻辑,它仅用于显示(在诊断故障时可由联络中心工作人员使用)。

我们的经验是,当用户更新我们的应用程序时,NSUserDefaults不会被清除,但“设置”屏幕也不会更新。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top