Ios NSUserDefault无法检索双精度值
我正在创建一个简单的双精度值,将其保存为NSUserDefault并尝试恢复它…但它没有Ios NSUserDefault无法检索双精度值,ios,double,nsuserdefaults,Ios,Double,Nsuserdefaults,我正在创建一个简单的双精度值,将其保存为NSUserDefault并尝试恢复它…但它没有 - (IBAction)try:(id)sender { double value = 42.00; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setDouble:value forKey:@"kDoubleKey"]; // NSLog(@"loading %f"
- (IBAction)try:(id)sender {
double value = 42.00;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setDouble:value forKey:@"kDoubleKey"];
// NSLog(@"loading %f",myDouble);
}
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSUserDefaults *fetchDefaults = [NSUserDefaults standardUserDefaults];
double intValue = [fetchDefaults doubleForKey:@"kDoubleKey"];
NSLog(@"douvle retrieve %f",intValue);
}
当您将某些内容保存为默认值时,不要忘记同步: 把这个放在你尝试方法的末尾
[[NSUserDefaults standardUserDefaults]synchronize];
苹果是这样说的:因为这个方法是定期自动调用的,所以只有当你不能等待自动同步时(例如,如果你的应用程序即将退出),或者如果你想更新用户的默认值,即使你没有做任何更改,也要使用这个方法 你不清楚。您在登录
视图中将看到什么:
?您是否已验证调用了try:
?调用try:
后是否立即终止并重新启动应用程序?是的,我正在终止应用程序,然后希望恢复值。这就是问题所在。在NSUserDefaults
实际持久化到磁盘之前,您正在终止应用程序。设置值后调用synchronize
,或者在关闭应用程序前等待一分钟。是的,synchronize工作正常。thanksBTW-这通常是不需要的。默认值在延迟后自动同步。只有在自动同步默认值之前关闭应用程序时才需要这样做。是的,但在这种情况下,我认为问题在于在同步默认值之前退出应用程序。默认值的声明和检索似乎很好。