MrD*_*ase 2 iphone nsuserdefaults synchronize
当我的iPhone应用程序运行时,我在NSUserDefaults中存储了一些数据(NSStrings).我正在为一场比赛保存高分.当我双击主页按钮并终止应用程序时,我重新启动应用程序时,我存储在NSUserDefaults中的值通常不存在. 为什么会这样?
我正在使用的代码在所有预多任务操作系统(3.0等)中运行良好.从阅读/搜索网络看起来像[NSUserDefaults standardUserDefaults] synchronize]; 有帮助.有什么想法吗?
谢谢!
在任务栏暂停时从任务栏中杀死应用程序只会向其发送SIGKILL消息; 没有正常关机发生.
如果您正在进行后台操作然后终止应用程序,则可能无法在应用程序终止之前将用户默认值同步(写入磁盘),这通常会在内部计时器上自动发生,但如果您已写入默认值并且然后在自动同步发生之前事物被暂停,这可以解释这种行为.
把它(如你所说):
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)
在-applicationDidEnterBackgroundapp delegate 中的处理程序中.这样,即使应用程序在后台死亡或被杀死,您也知道已经写入了默认值.
作为一种防御性练习,我通常在每次写入我认为非常重要的状态时显式调用defaults对象.
| 归档时间: |
|
| 查看次数: |
340 次 |
| 最近记录: |