NSUserDefault在iPhone 4.0设备上不工作?

NSUserDefault在iPhone 4.0设备上不工作?,iphone,objective-c,Iphone,Objective C,我正在使用NSUserDefaults保存应用程序中的数据,当用户离开应用程序,然后返回应用程序时,所有值都会恢复 问题是,当应用程序在后台模式下运行时,它确实保存了这些值。但当我从多任务中关闭应用程序并重新打开它时,应用程序会作为新应用程序返回,并且没有保存任何值。我已经添加了beginInBackground和applicationWillterminate方法 但是没有帮助是他们在新的4.0上实现这一点的新方法吗 另外,我只在设备上进行测试。我无法使用模拟器,因为我正在使用Map kit。

我正在使用
NSUserDefaults
保存应用程序中的数据,当用户离开应用程序,然后返回应用程序时,所有值都会恢复

问题是,当应用程序在后台模式下运行时,它确实保存了这些值。但当我从多任务中关闭应用程序并重新打开它时,应用程序会作为新应用程序返回,并且没有保存任何值。我已经添加了beginInBackground和applicationWillterminate方法 但是没有帮助是他们在新的4.0上实现这一点的新方法吗


另外,我只在设备上进行测试。我无法使用模拟器,因为我正在使用Map kit。

您正在调用该方法吗?

您正在调用该方法吗?

在您的
应用程序中,只要使用以下代码即可:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize];

应用程序中,只需使用以下代码:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize];

您遇到的问题是,您希望在4.0中不会发送
NSApplicationWillTerminateNotification
,因为会发送
nsapplicationIdentinterBackgroundNotification
。我也有同样的问题。为存储功能注册这两个通知,它将再次工作。您不需要条件代码,因为即使您注册了3.0中不存在的通知,也不会在那里调用它,因此不会发生崩溃


如果您不使用通知,您还可以覆盖
ApplicationIdentinterBackground
:如上面的注释所述。

您遇到的问题是,您希望在4.0中不会发送
NSApplicationIdentinterBackground通知
,因为
NSApplicationIdentinterBackground通知
而是被派去。我也有同样的问题。为存储功能注册这两个通知,它将再次工作。您不需要条件代码,因为即使您注册了3.0中不存在的通知,也不会在那里调用它,因此不会发生崩溃


如果您不使用通知,您还可以覆盖
ApplicationIdentinterBackground
:如上述注释所述。

如果您发布了一些代码,以便我们了解您如何设置和获取
NSUserDefaults
,这将有所帮助。如果您发布了一些代码,以便我们了解您如何进行设置,这将有所帮助我想这就是答案,看看所有的新方法:-(void)application willresignactive:(UIApplication*)application;-(无效)应用程序标识符背景:(UIApplication*)应用程序;-(无效)应用程序将进入前台:(UIApplication*)应用程序-(无效)应用程序IDBECOMEACTIVE:(UIApplication*)应用程序;-(无效)申请将终止:(UIApplication*)申请;我打赌Jacob假设ApplicationWillTerminate我认为这就是答案,看看所有的新方法:-(void)ApplicationWillResignative:(UIApplication*)application;-(无效)应用程序标识符背景:(UIApplication*)应用程序;-(无效)应用程序将进入前台:(UIApplication*)应用程序-(无效)应用程序IDBECOMEACTIVE:(UIApplication*)应用程序;-(无效)申请将终止:(UIApplication*)申请;我打赌雅各布认为申请会终止