2015-06-02 75 views
-1

我有一个应用程序,它将用户信息存储在NSUserDefaults * 中,当应用程序加载并运行时,它会读取此数据。NSUserDefaults *并升级到新版本

如果我理解当用户将应用程序升级到新版本时正确,它基本上就像删除并重新安装该应用程序,这意味着所有的用户数据丢失了

有没有办法在用户设备上的某个地方保存这些数据的内存区域,可供多个应用程序访问,并且在更新过程中不会被删除?

+4

这是错误的。更新不擦除NSUserdefaults。 – WMios

+0

无事可做。数据在升级过程中不会丢失。 – rmaddy

+0

这不仅是NSUserDefaults。可写入数据库或其他文件的应用程序只要存在就继续使用可写入的版本。 –

回答

1

有趣的问题,我已经通过搜索,并遇到以下。

参考以下SOF post具有由SOF社区高upvoted答案,

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

但是,如果要删除以前NSUSerDefault设置,那么你可以使用

[NSUserDefaults resetStandardUserDefaults] 

进一步详细信息,可以发现here

3

如果我理解正确的时候,用户升级到新版本的应用程序,它基本上就像删除并重新安装应用程序,这意味着所有的用户数据丢失。

这是不正确的。升级是从根本上删除不同,并重新安装,因为它删除存储在NSUserDefaults什么,存储在文件系统上的文件,在本地数据库中的信息,等等。

简而言之,你应该没有问题 - 数据将在更新之间保持不变。