Using NSUserDefaults to store many values will cause problems?

坚强是说给别人听的谎言 提交于 2019-12-06 06:50:14

问题


I have created an application which will login using username, password and allows the user to download the files from serve. In my application I have to persist few datas once the user have login in the application.

Persisting data like Username, Password, user downloaded list , subscribed plans,etc. The data can be persisted in application either by NSUserDefaults,Plist , etc. But I feel easy to store and retrieve the values using NSUserDefaults. As I need to use the values in many view controllers, I prefer NSUserDefaults.

Is this the best practice ? Using too much NSUserDefaults will result in a trap ? Tell me is there other way to persist the data and retrieve it easily in cocoa-touch ?


回答1:


You can use NSUserDefaults for storing user data.

But for highly sensitive data like Username and Password I prefer keychain to store them.

Please check these links for Keychain saving:

  1. Simple iphone keychain access
  2. saving email password to keychain in ios
  3. howto use keychain in iphone sdk



回答2:


In my opinion , if you want to store little data , such as username , password or some BOOLs , you can use NSUserDefaults .

As the NSUserDefaults is a common plist , if you want to store some your data such as your download links , it is better to use your custom plist .

If you want to store some big data such as UIImage , you can use NSCache , but it may evict data.

If you want to store a lot of data , it better to use database.




回答3:


I would look into using a library such as https://github.com/kishikawakatsumi/UICKeyChainStore which is just a really nice wrapper around the ios keychain store and store sensitive data in the users keychain rather than the user defaults plist as it is more secure.

As for the data if its not secure there is no reason why you couldn't just write them out to files and load them back in?



来源:https://stackoverflow.com/questions/14473244/using-nsuserdefaults-to-store-many-values-will-cause-problems

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!