保存我使用的应用程序的一些变量:
- (void)applicationWillTerminate:(UIApplication*)application {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; [prefs setFloat: self.viewController.sLabel.contentOffset.y forKey:@"floatKey"]; [prefs setObject:self.viewController.newText forKey:@"stringVal"]; [prefs synchronize];
}
并通过按钮检索它们,我执行以下操作:
- (IBAction)riprendi:(id)sender {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; float myFloat = [prefs floatForKey:@"floatKey"];
//这里有一些动作
}
一切都在模拟器上工作.但是,在真正的iPhone上使用它,变量的保存和检索只有按下主页按钮,退出应用程序并再次打开才有效,但如果关闭/打开iPhone则不行.在这种情况下,一旦重新打开应用程序,变量就会丢失...
我错过了什么?这实际上让我抓狂:(
非常感谢你;)Fabio
如果你的意思是通过说"打开/关闭"按下手机顶部的锁定按钮,那么它将无法工作,因为锁定手机不会导致应用程序退出.applicationWillTerminate:
只有在退出应用程序主屏幕或某个其他应用程序时,才会调用您的方法.当用户按下"睡眠"按钮时,applicationWillResignActive:
将发送给您的应用程序代表.
Apple的iPhone OS编程指南有一节关于处理中断的内容.