我正在尝试在 iOS 6 上使用新的保存/恢复应用程序状态功能,但是如果我终止了应用程序,则不会调用 (application:shouldRestoreApplicationState:) 方法,因此它不会恢复应用程序状态,但是如果我正在运行它从调试器被调用。
当我在 plist 中添加(应用程序不在后台运行)并将其设置为 YES 时,它起作用了,但我不想将其设置为 YES。我想知道是否有人在没有将(应用程序不在后台运行)设置为“是”的情况下让它工作。
来自苹果文档:
当用户强制退出应用时,系统会自动删除应用的保留状态。在应用程序被杀死时删除保留的状态信息是一种安全预防措施。(作为安全预防措施,如果应用程序在启动过程中崩溃两次,系统也会删除保留状态。)如果您想测试应用程序恢复其状态的能力,则不应在调试期间使用多任务栏杀死应用程序。相反,使用 Xcode 终止应用程序或通过安装临时命令或手势以按需调用退出以编程方式终止应用程序。
根据经验,最简单的方法是通过按主页按钮(或模拟器的 Command+Shift+H)将您的应用程序置于后台。然后使用 Xcode 停止按钮。正如文档所建议的,调试退出手势也可以。
更新:
我找到了一个小工作。应用程序将其状态保存在 Library/Saved Application State/[Bundle ID]-[App Name].savedState/data.data 中。
使用模拟器时,您可以复制此文件并在您想要恢复到该特定状态的任何时候将其放入。
同样,在设备上,您可以从管理器生成 .xcappdata 存档。然后,当您想从该保存状态恢复时,您可以上传 .xcappdata 存档。