2009-10-28 28 views
89

这是这种情况?当您向App Store上的应用程序提交更新时,NSUserDefaults会重置吗?还是重置?更新时NSUserDefaults是否通过更新Appstore中的应用程序而持续存在?

我的应用程序崩溃,但完全下载时不会崩溃 - 所以我试图确定什么可能是在更新后的会话来新下载的会议不同。

干杯, Nick。

+0

**文档**和**库**中的文件将被**保存**,如文档所述: http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/概念/ iPhoneOSProgrammingGuide/RuntimeEnvironment/RuntimeEnvironment.html#// apple_ref/doc/uid/TP40007072-CH2-SW7 – Geri 2011-08-08 10:00:23

回答

101

它们通常不复位,除非用户删除的应用程序。对于基本数据,NSUserDefaults是保存数据(如偏好,日期,字符串等)的最佳方式。如果您希望保存图像和文件,则文件系统是更好的选择。

+5

在苹果文档中是否有某处提到了? – 2009-10-28 17:25:25

+1

对不起 - 我忘了感谢你的快速回答! - 如果任何人都可以找到任何形式的Apple文档的链接,这将是优秀的....在NSUserDefaults的文档中没有提到这一点,所以我认为我有(错误地)认为默认设置被擦除。这似乎是苹果更新应用程序的最安全的方式! – 2009-10-28 17:33:34

+0

这可能是最安全的方式,但如果用户在应用程序更新时不得不重新设置所有偏好,那么这对用户来说是非常烦人的。我通常每天有三到四次应用程序更新;我相信其他的iPhone用户还有更多。擦除每个更新的首选项基本上会使我的iPhone无法使用。 – 2009-10-29 01:51:45

7

我beleive答案是肯定的,这将持续存在。这在Apple iPhone OS编程指南中的应用程序目录章节中也有完整记录。

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

如果你有CoreData模型,在模型中,并更新改变的东西,没有管理迁移,这就是可能的原因上更新您的应用崩溃......

+0

我期望它可能是一种情况:)不是NSUserdefault – 2014-04-07 12:25:25

1

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

我们的经验是,当NSUserDefaults的用户更新我们的应用程序没有得到清除,但设置显示没有得到任何更新。

相关问题