iphone - 如何在 NSUserDefaults 中存储一个 float

标签 iphone objective-c ios iphone-sdk-3.0 nsuserdefaults

我想将一个 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"]];      
}

感谢您的帮助

最佳答案

为此使用 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];

关于iphone - 如何在 NSUserDefaults 中存储一个 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363698/

相关文章:

iphone - 如何在 iOS 中使用 jar

ios - 使用 iPhone 访问 openshift

objective-c - NSDictionary 无法正确保存数据

ios - 如何在一个 View 中选择的图像在另一个 View 中显示

objective-c - AFJSONRequestOperation 结果中的键周围缺少引号吗?

objective-c - 'applicationDidBecomeActive' 之后调用了什么方法?

iphone - 在iPhone 4上录制视频时可以播放音频吗?

iphone - iAD 不适用于 iOS 5.1 设备,但适用于 iOS 5.1 模拟器

iphone - respondsToSelector 总是失败

c# - 如何检索按钮 (MonoTouch) 上的 TouchUpInside 返回值?