【发布时间】:2010-06-22 09:38:13
【问题描述】:
我正在尝试从我的首选项文件中检索一个整数值。有趣的是它总是返回零,尽管它确实存在并且integerForKey: 和setIntegerForKey: 的名称相同。
这是我检索值的方法:[defaults integerForKey:@"BackUpSize"];
我在这里设置它:[defaults setInteger:[sizeSlider doubleValue]*8589934592 forKey:@"BackUpSize"];
我惊呆了。它应该可以工作......还是我在这里遗漏了什么?
谢谢
编辑:默认创建如下:NSUserDefaults*defaults = [NSUserDefaults standardUserDefaults];
编辑:我已经尝试为这个问题创建自己的 NSUserDefaults 方法,但它仍然返回零。
-(void)setDouble:(double)dou forKey:(id)key
{
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithDouble:dou] forKey:key];
}
-(double)doubleForKey:(id)key
{
return [[[NSUserDefaults standardUserDefaults] objectForKey:key] doubleValue];
}
【问题讨论】:
-
您确认
defaults不是nil?nil上的方法调用返回...0。 -
默认值只是 [NSUserDefaults standardUserDefaults]...
-
刚刚验证它不是零。
-
两个语句是否属于同一类?您是发送
setInteger:forKey:之前integerForKey:,还是之后?您是正常退出应用程序,还是从 Xcode 中终止它? -
setInteger:forKey: 在被读取之前发生。我确实正常退出了应用程序,因为当通过 xcode 完成时,没有保存任何首选项。
标签: cocoa macos integer nsuserdefaults