【问题标题】:NSUserDefaults* and upgrading to new version [duplicate]NSUserDefaults* 并升级到新版本 [重复]
【发布时间】:2015-08-16 22:41:52
【问题描述】:

我有一个将用户信息存储在NSUserDefaults * 中的应用程序 当应用程序加载并运行时,它会读取这些数据。

如果我理解正确,当用户将应用升级到新版本时,基本上就像删除并重新安装应用一样,这意味着 所有用户数据都会丢失。

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

【问题讨论】:

  • 这是错误的。更新不删除 NSUserdefaults。
  • 无事可做。升级期间数据不会丢失。
  • 不仅仅是 NSUserDefaults。具有可写 DB 或其他文件的应用程序会继续使用可写版本,只要它们存在。

标签: ios nsuserdefaults


【解决方案1】:

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

这是不正确的。升级与删除和重新安装根本不同,因为它不会删除存储在NSUserDefaults 中的任何内容、存储在文件系统中的文件、本地数据库中的信息等...

简而言之,您应该什么都不做 - 数据将在更新之间保持不变。

【讨论】:

    【解决方案2】:

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

    参考以下 SOF post 得到 SOF 社区高度评价的回答,

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

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

    [NSUserDefaults resetStandardUserDefaults]
    

    更多详细信息请见here

    【讨论】:

      猜你喜欢
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 2018-07-30
      • 2018-03-08
      • 2019-02-17
      • 1970-01-01
      相关资源
      最近更新 更多