2010-12-06 27 views
3

floatの値をNSUserDefaultsに保存します。NSUserDefaultsにフロートを格納する方法

浮動小数点値が存在することを確認する必要があります。それに何らかの値を割り当てる必要はありません。

これを取得するには上記のコードがありますが、エラーが表示されます。あなたはそれが存在するかどうかを確認することができますので、任意の助け

答えて

12

ため

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

if ([defaults boolForKey:@"HANDWRITING_SIZE_SLIDER"] == YES) { 
    self.sizeSlider.value = 10.0; 
} else { 
    self.sizeSlider.value = [[NSUserDefaults standardUserDefaults] floatForKey:@"HANDWRITING_SIZE_SLIDER"]];  
} 

おかげでsetObject:forKey:メソッドを介して、このためにNSNumberクラスを使用し、それを保存します。

私はまた、キーなどの定数の使用をお勧めしたい:

#define HANDWRITING_SIZE_SLIDER @"HSS" 

あなたのコードでは、これらの線に沿って次のようになります。あなたのアプリ内の他の

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

if ([defaults objectForKey:HANDWRITING_SIZE_SLIDER] == nil) { 
    //doesn't exist in NSUserDefaults, set to default value... 
    self.sizeSlider.value = 10.0; 
} else { 
    self.sizeSlider.value = [[defaults objectForKey:HANDWRITING_SIZE_SLIDER] floatValue]; 
} 

どこかで、あなたが値を設定したいですこのようなNSUserDefaultsで:

float sizeSliderValue = ... 
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithFloat:sizeSliderValue] forKey:HANDWRITING_SIZE_SLIDER]; 
+0

彼はelseセクションであなたを紹介しました。 –

0

このコードを試してみてください。

-(IBAction)sliderAction:(id)sender 
{ 
    float sliderValue = [sender floatValue]; 
    [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithFloat:sliderValue] forKey:@"keySliderValue"]; 

    NSLog(@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"keySliderValue"]); 
} 
関連する問題