我想将float
值存储到NSUserDefaults
。
我还需要检查浮点值是否存在..如果我不需要在其中指定一些值。
并检索它......对于上面我有以下代码,但它给了我一个错误。
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"]];
}
感谢您的帮助
答案 0 :(得分:12)
使用NSNumber
类并通过setObject:forKey:
方法存储它,以便检查它是否存在。
我还建议使用常量作为键:
#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];
答案 1 :(得分:0)
试试这段代码:
-(IBAction)sliderAction:(id)sender
{
float sliderValue = [sender floatValue];
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithFloat:sliderValue] forKey:@"keySliderValue"];
NSLog(@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"keySliderValue"]);
}