如何在NSUserDefaults中存储浮点数
问题描述:
我想将float
值存储到NSUserDefaults
中。如何在NSUserDefaults中存储浮点数
我还需要检查float值是否存在..如果我不需要在它中分配一些值。
并检索它...对于上述我有下面的代码,但它给了我一个错误。
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];
答
试试这个代码:
-(IBAction)sliderAction:(id)sender
{
float sliderValue = [sender floatValue];
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithFloat:sliderValue] forKey:@"keySliderValue"];
NSLog(@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"keySliderValue"]);
}
他在else部分向你展示了你。 – 2010-12-06 06:40:02