Ios 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"

我正在创建一个简单的双精度值,将其保存为NSUserDefault并尝试恢复它…但它没有

- (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-这通常是不需要的。默认值在延迟后自动同步。只有在自动同步默认值之前关闭应用程序时才需要这样做。是的,但在这种情况下,我认为问题在于在同步默认值之前退出应用程序。默认值的声明和检索似乎很好。