Sí, las dos líneas de código son equivalentes, tanto dará lugar a nil leer
id obj = [[NSUserDefaults standardUserDefaults] objectForKey:@"example key"];
NSUserDefaults
devolverá nil si la clave estaba extraviado. Yo recomendaría usar el removeObjectForKey
en lugar de establecerlo en cero.
aquí es cómo poner a prueba si el valor de ajuste a cero clave quita la entrada llave del NSUserDefaults standardUserDefaults
.
NSArray *keys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] copy];
for(NSString *key in keys) {
NSLog(@"Key Name: %@", key);
}
[keys release];
o simplemente volcar el diccionario de clave/valor de NSUserDefaults standardUserDefaults
NSLog(@"All contents of NSUserDefaults: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
Sí, excepto el primero hace que su intención mucho más clara. – BallpointBen