Cómo almacenar un flotante de recuperación de NSUserDefaults

Tengo problemas para almacenar y recuperar un flotante en NSUserDefauts. Almaceno el valor, pero cuando lo recupero, devuelve 0.

esto es lo que probé y no funcionó:

[pref setFloat:3.0f forKey:@"key"];
float value = [pref floatForKey:@"key"]; //value=0

[pref setFloat:3 forKey:@"key"];
float value = [pref floatForKey:@"key"];//value=0

[pref setObject:[NSNumber numberWithFloat:3] forKey:@"key"];
float value = [[pref objectForKey:@"key"]floatValue];//value=0

[pref setObject:[NSNumber numberWithFloat:3.0f] forKey:@"key"];
float value = [[pref objectForKey:@"key"]floatValue];//value=0

¿Qué estoy haciendo mal aquí? He probado estos 4 códigos pero todos devuelven cero al recuperar el flotante de NSUserDefaults.

Cualquier ayuda es apreciada. ¡Gracias