It's not advisable to store sensitive information, especially passwords in
NSUserDefaults or as plain text files. These information should be stored in the Keychain.
However, the Keychain API is a little harder to use than it should be, and several libraries have been written to wrap around it. Lockbox from Mark Granoff provides a clean API for storing and retrieving items to the Keychain. It also provides convenience methods to store other data types such as
NSSet into the Keychain.