Iphone iOS6应用程序状态保存和恢复

Iphone iOS6应用程序状态保存和恢复,iphone,ios6,save,state,Iphone,Ios6,Save,State,我的应用程序的最低支持iOS版本是iOS5。我也没有做任何州的保存和恢复工作。 它在我自己的iphone4上运行得很好,但一些用户抱怨,当他们接听电话或切换到其他应用并返回时,该应用被重置。 所以,我更重视状态恢复,我想把它添加到我的应用程序中。 但是,我有图像相册功能,所以我调用ALAssetLibrary。 我需要创建与以前完全相同的缩略图视图。 我在operationQueue中有一些后台操作,所以我需要知道它们的状态并添加未完成的后台操作。有点复杂。 以下是我的问题。 1.我没有找到有用

我的应用程序的最低支持iOS版本是iOS5。我也没有做任何州的保存和恢复工作。 它在我自己的iphone4上运行得很好,但一些用户抱怨,当他们接听电话或切换到其他应用并返回时,该应用被重置。
所以,我更重视状态恢复,我想把它添加到我的应用程序中。 但是,我有图像相册功能,所以我调用ALAssetLibrary。
我需要创建与以前完全相同的缩略图视图。
我在operationQueue中有一些后台操作,所以我需要知道它们的状态并添加未完成的后台操作。有点复杂。 以下是我的问题。
1.我没有找到有用的示例代码,project。(WWDC2012中的session208,但他们没有在WWDC示例代码发布中发布代码),您知道吗?
2.最好的方法是什么?跟随iOS6还是自己做?
有什么区别。

3.对于库,图像缩略图查看,如何实现状态保存和恢复

一定要使用苹果的API,不要重新发明轮子。该公司以WWDC 2012应用程序为例展示了该功能,但从未有任何演示项目可供开发人员共享。然而,他们(最近)发布了一个演示,您可以在这里找到:

听起来你的状态很复杂,我不确定你是否真的想恢复那些后台操作。您可能会发现将用户恢复到应用程序中更稳定的部分会更好

对于ALAssetlibrary问题,您需要在视图控制器的
encodeRestorableStateWithCoder:
实现中为当前图像保存一个ID,确保您阅读了文档,您需要遵守协议,如果您在代码中或使用xibs(不使用故事板),请设置一个恢复类。。。您可以通过以下方式保存ID:

NSString * const ImageReferenceIDKey = @"ImageReferenceID";

- (void)encodeRestorableStateWithCoder:(NSCoder *)coder
{
    NSString *objectID = nil; // get some ID that can relocate your image
    [coder encodeObject:objectID forKey:ImageReferenceIDKey];
    [super encodeRestorableStateWithCoder:coder];
}

- (void)decodeRestorableStateWithCoder:(NSCoder *)coder
{
    [super decodeRestorableStateWithCoder:coder];
    NSString *objectID = [coder objectForKey:ImageReferenceIDKey];
    // get into the ALAssetlibrary and use the objectID to restore which image you had.
}
注意,我在encode方法中最后调用
super
,但在decode方法中首先调用

如果用户更改了您对其照片的访问权限,您应该非常小心,不要在这些照片上崩溃,如果您尝试还原照片,请确保您仍然有这样做的权限,否则您可能会崩溃