使用NSUserDefaults存储许多值会导致问题吗?

我创建了一个应用程序,它将使用用户名,密码登录,并允许用户从服务器下载文件。 在我的应用程序中,一旦用户登录应用程序,我必须保留少量数据。

保留用户名,密码,用户下载列表,订阅计划等数据。 数据可以通过NSUserDefaults,Plist等保存在应用程序中。但我觉得使用NSUserDefaults存储和检索值很容易。 因为我需要在许多视图控制器中使用这些值,所以我更喜欢NSUserDefaults

这是最好的做法吗? 使用太多NSUserDefaults会导致陷阱? 告诉我有没有其他方法可以在cocoa-touch中持久保存数据并检索它?

您可以使用NSUserDefaults存储用户数据。

但对于高度敏感的数据,如UsernamePassword我更喜欢使用keychain存储它们。

请检查以下链接以获取钥匙串:

  1. 简单的iphone钥匙串访问
  2. 将电子邮件密码保存到ios中的钥匙串
  3. 如何在iphone sdk中使用钥匙串

在我看来,如果你想存储很少的数据,比如用户名,密码或一些BOOL,你可以使用NSUserDefaults。

由于NSUserDefaults是一种常见的plist,如果您想存储一些数据,例如下载链接,最好使用自定义plist。

如果你想存储一些大数据,如UIImage,你可以使用NSCache,但它可能会驱逐数据。

如果要存储大量数据,最好使用数据库。

我会考虑使用像https://github.com/kishikawakatsumi/UICKeyChainStore这样的库,它只是围绕ios钥匙串存储的一个非常好的包装器,并在用户钥匙串中存储敏感数据,而不是用户默认的plist,因为它更多安全。

至于数据是否不安全,没有理由你不能将它们写出来并加载回来?