Search code examples
iphoneioscocoa-touchnsuserdefaultspersistent-storage

Using NSUserDefaults to store many values will cause problems?


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 ?


Solution

  • 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