使用NSUserDefaults存储许多值会导致问题吗?
我创建了一个应用程序,它将使用用户名,密码登录,并允许用户从服务器下载文件。 在我的应用程序中,一旦用户登录应用程序,我必须保留少量数据。
保留用户名,密码,用户下载列表,订阅计划等数据。 数据可以通过NSUserDefaults,Plist等保存在应用程序中。但我觉得使用NSUserDefaults存储和检索值很容易。 因为我需要在许多视图控制器中使用这些值,所以我更喜欢NSUserDefaults
。
这是最好的做法吗? 使用太多NSUserDefaults
会导致陷阱? 告诉我有没有其他方法可以在cocoa-touch中持久保存数据并检索它?
您可以使用NSUserDefaults
存储用户数据。
但对于高度敏感的数据,如Username
和Password
我更喜欢使用keychain
存储它们。
请检查以下链接以获取钥匙串:
- 简单的iphone钥匙串访问
- 将电子邮件密码保存到ios中的钥匙串
- 如何在iphone sdk中使用钥匙串
在我看来,如果你想存储很少的数据,比如用户名,密码或一些BOOL,你可以使用NSUserDefaults。
由于NSUserDefaults是一种常见的plist,如果您想存储一些数据,例如下载链接,最好使用自定义plist。
如果你想存储一些大数据,如UIImage,你可以使用NSCache,但它可能会驱逐数据。
如果要存储大量数据,最好使用数据库。
我会考虑使用像https://github.com/kishikawakatsumi/UICKeyChainStore这样的库,它只是围绕ios钥匙串存储的一个非常好的包装器,并在用户钥匙串中存储敏感数据,而不是用户默认的plist,因为它更多安全。
至于数据是否不安全,没有理由你不能将它们写出来并加载回来?