Ios NSUserDefault即使在同步后也不保存

Ios NSUserDefault即使在同步后也不保存,ios,objective-c,nsuserdefaults,Ios,Objective C,Nsuserdefaults,我正在尝试从远程服务器保存我的版本号,并将其保存以供以后使用。每次我在设备和模拟器上从XCode重新启动应用程序时,它都会将值报告为null。我知道服务器正在正确地发回数据,因为在保存数据之前,我已经在NSLog中报告了数据 NSLog(@"local version: %@",[[NSUserDefaults standardUserDefaults] objectForKey:@"version"]); if (![[NSUserDefaults standardUserDe

我正在尝试从远程服务器保存我的版本号,并将其保存以供以后使用。每次我在设备和模拟器上从XCode重新启动应用程序时,它都会将值报告为null。我知道服务器正在正确地发回数据,因为在保存数据之前,我已经在NSLog中报告了数据

    NSLog(@"local version: %@",[[NSUserDefaults standardUserDefaults] objectForKey:@"version"]);
    if (![[NSUserDefaults standardUserDefaults] objectForKey:@"version"]) {
        NSString* verNum=[NSString stringWithFormat:@"%ld",(long)[[responseObject objectForKey:@"version"] integerValue]];
        [[NSUserDefaults standardUserDefaults] setObject:verNum forKey:@"version"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        newMode=1;
    }

将代码拆分。将值分配给中间变量,以便您可以更轻松地读取和调试代码。在NSLog中,您有def,但在大量的setObject语句中,您有responseObjectI修复了代码,因为def是在上面的一行定义的:NSUserDefaults*def=[NSUserDefaults standardUserDefaults];这对我有用,但我不知道确切的版本格式是什么。尝试通过NSLog打印responseObject的内容以检查其内容,至少在此处提供。