Trate de evitar guardar datos tanto como sea posible.
Keychain - llavero es seguro & manera encriptada para guardar los datos de almacenamiento pequeños, como nombre de usuario, contraseña, etc. Cuidado con los datos de llavero puede acceder desde los dispositivos con jailbreak. Puede obtener el código de muestra de Apple en here.
Keychain Sharing - Activar el uso compartido llavero permite su aplicación para compartir las contraseñas en el llavero con otras aplicaciones desarrolladas por su equipo. Supongamos que creamos dos aplicaciones en las que los usuarios pueden iniciar sesión en la misma cuenta. Sería bueno tener la capacidad de compartir la información de inicio de sesión entre estas aplicaciones. De esta forma, el usuario solo deberá iniciar sesión una vez en una de las aplicaciones.
UserDefaults un interfaz a la base de datos por defecto del usuario, donde se almacenan pares de valores clave persistentemente las invocaciones de la aplicación en un dispositivo dado. UserDefaults no son una forma segura de guardar datos privados. UserDefaults se almacenan como plist localmente, Cualquiera puede realizar un seguimiento en ./Library/Preferences/com.mycompany.MyAppName.plist
Este es un comentario muy evidente sólo para simplificar su comprensión de llavero. Keychain y NSUserDefault son ** muy similares **. Para ambos, simplemente hagan algo así como * establecer un objectforKey y luego hacer ObjectForKey para leerlo * Ambos almacenan hashes. Tanto Keychain como NSUserDefault serán sandbox pero Keychain no será desasignado de la memoria, incluso si su aplicación está desinstalada. Todavía estará allí la próxima vez que instale. También hay un llavero para iCloud que funciona en varios dispositivos, pero esa es una historia diferente – Honey