iOS中的状态恢复

我正在存储我的应用程序屏幕,以便当应用程序被打开时,它将显示存储的屏幕。 该应用程序是基于导航的。

我已经把Restoration ID分配给主故事板中的两个视图控制器。 第一个控制器是导航控制器的根视图控制器。 我还为导航控制器分配了恢复ID。 现在的问题是,当我运行应用程序我收到以下警告:

无法创build恢复进行中的标记文件。

不知道还有什么需要做的。

我之前也有同样的警告,并通过以下操作进行修复。

我正在使用故事板。 我的故事板只包含一个导航视图控制器和一个视图控制器(它是该导航视图控制器的根视图控制器)。 就我而言,这是由两个原因造成的:

应用程序没有正确设置以保存状态需要设置以下内容:

  1. 在应用程序委托中,覆盖应用程序:willFinishLaunching。 可以简单地在该方法中返回YES。

  2. 对于每个视图控制器和视图(包括导航视图控制器和选项卡视图控制器),请设置一个恢复ID

  3. 在应用程序委托中,通过覆盖shouldSaveApplicationStateshouldRestoreApplicationStateselectjoin

如果这个警告仍然发生,你可以检查你在Xcode中如何运行你的应用程序。 我在Xcode模拟器中运行我的应用程序,不得不按照特定的顺序触发状态保存。

  • 在Xcode模拟器中启动应用程序
  • 在Xcode模拟器中,单击“ Home ”button将应用程序置于后台。 应该调用视图控制器的encodeRestorableStateWithCoder方法
  • 回到Xcode,点击“ 停止 ”button来终止仿真
  • 在Xcode模拟器中,双击“Home”button,然后从应用程序切换器中删除应用程序
  • 回到Xcode,再次运行应用程序。

该警告不应该出现。 当我使用其他序列时,我看到警告出现。 当我使用Xcode在我的设备上debugging我的应用程序时,我按照相同的顺序,没有看到警告。

我认为警告表明,因为Xcode无法正确终止应用程序,状态还原文件没有正确保存到磁盘上。

尝试给您的视图一个恢复ID。 您可以打开您的xib或故事板,并将该id分配给您的视图控制器。

在这里输入图像说明

更多详情: http : //useyourloaf.com/blog/2013/05/21/state-preservation-and-restoration.html

模拟器:

  • 这是应用程序编码时第一次在模拟器上发生。 (不知道为什么)
  • 随后的时间这个警告将不会显示。

设备:

尝试在设备上运行。

  1. 在设备上运行
  2. 转到主屏幕。
  3. 停止在Xcode上运行
  4. 从应用切换器中移除应用
  5. 再次在设备上运行
Interesting Posts