Pregunta

La documentación API NSUserDefaults tiene el mensaje boolForKey: que se describe como esto -

boolForKey:

Devuelve el valor booleano asociado con la clave especificada.

- (BOOL)boolForKey:(NSString *)defaultName

Valor devuelto Si un valor booleano se asocia con DEFAULTNAME en los valores predeterminados del usuario, se devuelve dicho valor. De lo contrario, NO se devuelve.

Dado que una [[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"] devuelve un NO puede ser ya sea porque la clave no existe o existe la clave y tiene un valor boolean NO. ¿Cómo podemos diferenciar? A partir de ahora, sólo puedo evitar entrar en esta situación en primer lugar.

¿Fue útil?

Solución

Está utilizando los valores predeterminados del usuario de forma incorrecta. En el lanzamiento de su aplicación, que se supone que -[NSUserDefaults registerDefaults:] llamada con un diccionario que contiene los valores por defecto para todas las preferencias.

A continuación, si el usuario no ha puesto una preferencia, -boolForKey devolverá el valor por defecto.

Otros consejos

Utilice el método -objectForKey: también. Esto le dirá si existe la clave.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top