Trying to save the position of a Slider:
saving my slider value with NSUserDefaults:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSNumber numberWithFloat:slider.value] forKey:@"slider"];
in my ViewdidLoad method:
NSNumber *sliderValue = [defaults objectForKey:@"Slider"];
[slider setValue:sliderValue];
under my setValue method I receive the error: sending NSNumber *_ strong to parameter of incompatible type of float. Any help would be much appreciated.
The line:
[slider setValue:sliderValue];
needs to be:
[slider setValue:[sliderValue floatValue]];
The value
property of slider
is of type float
. You can't simply pass an NSNumber
reference.
BTW - NSUserDefaults
has direct support for float
values:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setFloat:slider.value forKey:@"slider"];
slider.value = [defaults floatForKey:@"slider"];