-3

尝试保存 Slider 的位置:

用 NSUserDefaults 保存我的滑块值:

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[NSNumber numberWithFloat:slider.value] forKey:@"slider"];

在我的 ViewdidLoad 方法中:

 NSNumber *sliderValue =   [defaults objectForKey:@"Slider"];
[slider setValue:sliderValue];

在我的 setValue 方法下,我收到错误:将 NSNumber *_ strong 发送到不兼容的浮点类型的参数。任何帮助将非常感激。

4

2 回答 2

2

该行:

[slider setValue:sliderValue];

需要是:

[slider setValue:[sliderValue floatValue]];

value属性slider是 type float。您不能简单地传递NSNumber参考。

顺便说一句 -NSUserDefaults直接支持float价值观:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setFloat:slider.value forKey:@"slider"];

slider.value = [defaults floatForKey:@"slider"];
于 2013-08-21T04:01:41.017 回答
0

在 viewDidLoad 中,

代替 :

NSNumber *sliderValue =   [defaults objectForKey:@"Slider"];

写:

float sliderValue = [[defaults objectForKey:@"Slider"] floatValue];

setValuefloat在您提供它时将其作为参数,NSNumber因此它会引发错误。

于 2013-08-21T04:02:05.977 回答