3

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

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

这是最佳做法吗?使用过多NSUserDefaults会导致陷阱吗?告诉我还有其他方法可以保存数据并在 cocoa-touch 中轻松检索吗?

4

3 回答 3

2

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

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

请检查以下链接以保存钥匙串:

  1. 简单的 iphone 钥匙串访问
  2. 将电子邮件密码保存到 ios 中的钥匙串
  3. 如何在 iphone sdk 中使用钥匙串
于 2013-01-23T05:56:30.073 回答
2

在我看来,如果您想存储少量数据,例如用户名、密码或一些 BOOL,您可以使用 NSUserDefaults。

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

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

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

于 2013-01-23T06:05:07.343 回答
0

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

至于数据,如果它不安全,那么您没有理由不能将它们写入文件并将它们重新加载?

于 2013-01-23T05:59:03.347 回答