【问题标题】:How to store user-data correctly on iOS? Case with NSUserDefaults如何在 iOS 上正确存储用户数据? NSUserDefaults 的案例
【发布时间】:2013-05-31 06:51:11
【问题描述】:

我正在为 iOS 设备制作应用程序。这不是我的第一个应用程序,但它并不重要。我的应用程序使用NSUserDefaults 来存储在应用程序运行时使用的数据。当用户想要删除应用程序时,一切正常。在此之后以及在同一设备上再次安装/编译应用程序后,NSUserDefaults 的所有设置都将被删除 - 看起来应用程序是第一次在此设备上。

问题是:

  1. 如果我想在删除并重新安装应用程序后读取数据,我应该如何存储数据?
  2. 如果不是NSUserDefaults,那么在哪里存储这些数据?

提前谢谢你。

【问题讨论】:

    标签: ios cocoa-touch store nsuserdefaults


    【解决方案1】:

    不保留 nsuserdefaults。您应用程序的沙箱中的任何内容都不是钥匙串。钥匙串中的值不会被删除。

    因此,将钥匙串用于您想要保留的值。

    但不要将所有内容都存储在那里。通常,当用户删除一个应用程序时,他想要的东西都消失了。


    我能看到的唯一其他方式是您自己的服务器,用户可以在其中存储备份、dropbbox api 或 icloud

    【讨论】:

    • 保存到自定义 plist 并使用 icloud 不是一种选择?
    • 嗯.. 我想知道自己的服务器。我可以让用户通过应用内购买购买一些消耗品,我不想在删除应用后删除有关这些物品数量的信息。我想在用户重新安装应用程序时恢复它。问题是当用户想要在其他设备上安装应用程序时......嗯,也许自己的服务器比钥匙串更好。或者也许提到了@The dude iCloud?
    【解决方案2】:

    我认为您可以将默认设置存储在自定义 plist 中,然后使用 iOS 内置的 iCloud。 iCloud 会自动从您的应用程序中备份文档,然后您可以在新安装时使用它们,因为苹果会处理这个。

    查看苹果官方关于在 iCloud 上存储键值数据的文档:

    https://developer.apple.com/library/ios/#documentation/General/Conceptual/iCloudDesignGuide/Chapters/DesigningForKey-ValueDataIniCloud.html#//apple_ref/doc/uid/TP40012094-CH7-SW1

    在该链接中,他们解释了如何将 iCloud 上的键值数据添加到您的应用中。

    【讨论】:

      【解决方案3】:

      您想使用钥匙串,文档here

      这是设备上的唯一方式。可能您可以使用 iCloud,具体取决于您想要实现的目标。

      【讨论】:

      • 这是唯一的方法来存储数据,尽管删除了应用程序?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多