use*_*878 3 iphone objective-c nsuserdefaults iphone-sdk-3.0 ios
我想存储一个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"]];
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
Jac*_*kin 12
使用NSNumber该类并通过该setObject:forKey:方法存储它,以便检查它是否存在.
我还建议使用常量作为键:
#define HANDWRITING_SIZE_SLIDER @"HSS"
Run Code Online (Sandbox Code Playgroud)
你的代码应该是这样的:
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];
}
Run Code Online (Sandbox Code Playgroud)
您应用中的其他位置,您可以NSUserDefaults像这样设置值:
float sizeSliderValue = ...
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithFloat:sizeSliderValue] forKey:HANDWRITING_SIZE_SLIDER];
Run Code Online (Sandbox Code Playgroud)