Usando NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
,iPhone - Cómo detectar si existe una clave en NSUserDefaults standardUserDefaults
lo uso como llamadas BOOL boolFromPrefs = [defaults boolForKey:@"theBoolKey"];
Para obtener un valor BOOL salvado.
Si no se encuentra la clave, se devuelve NO (comportamiento predeterminado de boolForKey).
Pero ... NO puede ser una configuración guardada. Lo mismo para intForKey
Entonces, ¿cómo puedo probar si una clave existe antes de tratar de obtener su valor?
Veo eso como una opción valiosa pero también puedo ver cómo no registrar los valores predeterminados puede ser beneficioso también. Le da lógica ternaria donde puede saber si el usuario lo estableció explícitamente en sí o no o no lo configuró todo. – Joe
No estoy seguro, pero creo que esta forma de hacerlo funciona bien para la primera versión 1.0. Si tiene un gran cambio en la jerarquía de sus preferencias más adelante, probablemente necesite saber qué está escrito y qué no, para volver a enviarlo por completo. Probablemente ... O tal vez incluir una sola versión de Prefs en el archivo será suficiente. No sé, estoy trabajando en esto para evitar algunos problemas en el futuro con viejos archivos de Preferencia. ¿Conoces una buena fuente de lectura sobre esto? – Oliver
esos valores predeterminados no se escriben en NSUserDefaults (es por eso que debe registrarlos en cada lanzamiento), cuando desea nuevos valores predeterminados en una versión posterior, solo registre nuevos valores predeterminados. Si el usuario nunca tocó una configuración, se utilizan los nuevos valores predeterminados, si ha cambiado la configuración, lo más probable es que quiera usar su propia configuración de todos modos. –