Cuando Soy la creación de las preferencias por defecto de mi aplicación, estoy haciendo lo siguiente:¿Por qué usar registerDefaults: en lugar de setValue: forKey :?
1) Lectura Root.plist
desde el interior Settings.bundle
en un diccionario.
2) I prueba si se ha establecido una preferencia, y si no estoy registrar mi diccionario por defecto a través de [NSUserDefaults standardUserDefaults] registerDefaults:]
El problema es, por defecto registrados con registerDefaults:
no voy al almacén persistente, por lo que si el usuario nunca cambia sus preferencias. Estoy leyendo mis preferencias predeterminadas y registrándolas con NSUserDefaults
cada vez que se inicia la aplicación.
En lugar de utilizar registerDefaults:
que podría utilizar setValue:forKey:
y tener mi configuración predeterminada ir al almacén persistente, evitando la necesidad de construir un diccionario & registrarse en cada lanzamiento. Sin embargo, los documentation y sample code de Apple apuntan a registerDefaults:
.
Así que estoy tratando de averiguar cuándo y por qué debo usar registerDefaults:
y cuándo/por qué debo usar setValue:forKey:
en su lugar?
Encontré esta pregunta relacionada: [¿Para qué sirve - [NSUserDefaults registerDefaults:]?] (Http://stackoverflow.com/questions/4931167/what-is-the-use-of-nsuserdefaults-registerdefaults) Si bien las respuestas explican las diferencias, todavía no dicen por qué debería usar una sobre la otra. (Las respuestas parecen ignorar mi pregunta sobre la persistencia). – gabrielk