Actualmente, estoy desarrollando una aplicación cuya funcionalidad depende en gran medida de los datos JSON recuperados. La mayoría de los datos que planeo guardar en los datos centrales. Sin embargo, no estoy seguro de tener que guardar todas las cosas relacionadas con el usuario (configuraciones, favoritos, twitter, Facebook y etc.) también en los datos centrales, o debería usar NSUserDefaults? ¿Cuáles son los pros y los contras?¿Debo usar datos centrales para almacenar algunas preferencias del usuario o guardarlas en NSUserDefaults?
Respuesta
Se puede hacer referencia a la propia guía de Apple: Implementing Application Preferences
puede almacenar la configuración de usuario en cualquier forma que desee: La elección entre NSUserDefaults y Core Data es sólo entre el API, donde el primero fue en realidad diseñado para manejar preferencias de usuario.
NSUserDefaults y el "componente de configuración incorporada" son realmente uno y lo mismo. El uso de la aplicación de configuración aún almacenará las preferencias en NSUserDefaults a los que acceda en su aplicación con esa API.
La razón por la que es posible que no desee utilizar la aplicación de configuración integrada sería: es engorroso para los usuarios cambiar esa configuración. Si tiene configuraciones que los usuarios pueden querer cambiar con frecuencia, es posible que desee hacerlo dentro de su aplicación (por ejemplo, activar/desactivar la música, cambiar el nombre del jugador). Además, dado que usted tiene control total sobre su propia aplicación, puede tener una GUI más flexible que la que proporciona Apple en Settings.app
En cuanto al uso de Core Data o NSUserDefaults ... diría que va con NSUserDefaults ya que es mucho más fácil de implementar y fue diseñado para hacer esto, mientras que la implementación de datos básicos requerirá un gran esfuerzo.
Para cualquier persona que encuentre este hilo en 2017+, la página vinculada anteriormente ya no existe . Creo que esta guía, ahora llamada [Guía de programación de preferencias y configuraciones] (https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/Introduction/Introduction.html), es la versión actualizada. –
- 1. Guardar entidades de datos centrales en NSUserDefaults
- 2. Almacenar datos en NSUserDefaults
- 3. ¿Leer las preferencias de otra aplicación, o compartir algunas preferencias?
- 4. ¿Cómo debo almacenar datos por usuario en WinForms?
- 5. ¿Qué tipo de datos debo usar para almacenar valores monetarios?
- 6. cómo almacenar NSMutableArray en NSUserDefaults
- 7. Cómo almacenar CGRect y otras cosas en los datos centrales
- 8. ¿Debo usar JSON o AJAX para los datos de respuesta?
- 9. ¿Qué base de datos debo usar para almacenar registros y cómo debo usarlos?
- 10. iOS: ¿Es seguro almacenar información sensible del usuario en [NSUserDefaults standardUserDefaults]?
- 11. Cómo almacenar variables/preferencias en Python para uso posterior
- 12. Qué tipo de datos de columna debo usar para almacenar grandes cantidades de texto o html
- 13. ¿Debo usar GridFS o datos binarios para almacenar y recuperar imágenes de MongoDB?
- 14. Usar una NSString constante como la clave para NSUserDefaults
- 15. iniciar sesión con oAuth, ¿qué debo almacenar/usar para identificar al usuario?
- 16. ¿Qué tipo de datos usar en MySQL para almacenar imágenes?
- 17. ¿Qué debo usar para la autenticación de usuario en PHP?
- 18. cómo almacenar NSDictionary como propiedades transformables en los datos centrales
- 19. WPF/C#: ¿Dónde debo guardar los archivos de preferencias del usuario?
- 20. Qué tipos de enteros usar para enteros de datos centrales
- 21. Creación de una lista de zonas horarias fácil de usar para las preferencias del usuario
- 22. ¿Debo usar blob o texto para JSON en MySQL?
- 23. ¿Cómo manejas las preferencias del usuario?
- 24. Aplicación C#: ¿almacenamiento de preferencias en la base de datos o archivo de configuración?
- 25. ¿Debo usar Bitmap o Drawable para almacenar en ImageCache en Android?
- 26. ¿Debo usar int o UInt16?
- 27. iPhone: ¿Cómo puedo almacenar UIImage usando NSUserDefaults?
- 28. Debo usar el nombre de usuario o la identificación del usuario para hacer referencia a los usuarios autenticados en ASP.NET
- 29. ¿Debo usar horquilla o hilos?
- 30. ¿Tiene sentido usar Zookeeper para almacenar permisos de usuario?
Esta respuesta tiene una buena comparación: http://stackoverflow.com/questions/6173625/what-are-the-limitations-of-nsuserdefaults – dhirschl