【问题标题】:How do I handle saving data in my iOS application?如何处理在我的 iOS 应用程序中保存数据?
【发布时间】:2015-11-03 09:54:09
【问题描述】:

我的应用程序需要保存一些关于用户的信息,因此我已经计划了实现这个目标的方法。我通过将这些信息保存在两个不同的位置来管理这一步,但我开始怀疑这一点,让我更好地解释一下:

  • 教程状态。这种信息支持(正如您所猜测的)教程状态,将用户完成的标记为已完成,以避免一遍又一遍地显示相同的教程。我处理这些信息的方式是保存到NSUserDefaults

  • 配置。这种信息包含用户配置(一种小配置文件)。这次我处理这些信息的方式是保存到documentsPath 内的一个名为“UserData.plist”的文件中(代码如下)。

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0];
    NSString *PLISTPath = [documentsPath stringByAppendingPathComponent:@"UserData.plist"];
    

我正在创建应用程序,以便为一些更新做好准备。在这些更新期间,我不希望用户丢失任何已保存的数据。我做错了什么或感到困惑吗?我应该将所有内容保存在NSUserDefaults 中吗?

【问题讨论】:

  • 用户默认设置将保持到应用被删除为止。所以你拥有它的方式应该没问题。我会以某种方式添加,以便用户也可以跳过教程。
  • @dogCoffee 好的,所以我也需要将配置保存在NSUserDefaults :)
  • 如果这就是你所需要的,也可以保持简单。

标签: ios iphone save nsuserdefaults updates


【解决方案1】:

1) 使用NSUserDefaults 保存教程状态是可以的。不太清楚"user configuration" 是什么意思?是一些敏感数据(密码、电子邮件)吗?如果是,那么将其保存在不加密的plist 中是不好的。

2) User Defaults 在应用更新时不会被删除。

【讨论】:

  • 对不起,你是对的。让我解释一下我的意思:在配置过程中,用户将用他的学习信息编译一些字段。 “数学:9 级”、“历史:10 级”、“科学:2 级”。然而,没有什么敏感的。我只是保存在不同的部分,以便将包含所有这些信息的文件与其他文件分开。
  • 你建议我将这些数据保存在NSUserDefaults 中还是使用其他方法?
  • 您可以将此类信息保存在 NSUserDefaults 中。但是例如,如果您的应用程序将支持多个帐户,那么将它们保存在数据库(sqlite 或核心数据)中会更优雅
  • 不错!这是我的第一个应用程序,我从未使用过 Core Data。我去看看;)再次感谢!
猜你喜欢
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
相关资源
最近更新 更多