-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を互換性のないタイプのfloatのパラメーターに送信します。どんな助けでも大歓迎です。

4

2 に答える 2

2

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"];
于 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 に答える