16

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

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

无法创建正在进行中的恢复标记文件。

不确定还需要做什么。

4

3 回答 3

10

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

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

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

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

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

  3. 在应用程序委托中,通过覆盖shouldSaveApplicationState和选择加入shouldRestoreApplicationState

如果这个警告仍然出现,你可以检查你是如何在 Xcode 中运行你的应用程序的。我在 Xcode 模拟器中运行我的应用程序,并且必须按照特定的顺序来触发状态保存。

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

该警告不应出现。当我使用其他序列时,我看到出现了该警告。当我使用 Xcode 在我的设备上调试我的应用程序时,我遵循相同的顺序并且没有看到警告。

我认为该警告表明由于 Xcode 无法正确终止应用程序,因此状态恢复文件未正确保存到磁盘上。

于 2013-11-23T01:29:29.990 回答
0

尝试为您的视图提供恢复 ID。您可以这样做以打开您的 xib 或故事板并将 id 分配给您的视图控制器。

在此处输入图像描述

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

于 2013-11-13T20:40:27.460 回答
0

模拟器:

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

设备:

尝试在设备上运行。

  1. 在设备上运行
  2. 转到主屏幕。
  3. 停止在 Xcode 上运行
  4. 从应用切换器中删除应用
  5. 再次在设备上运行
于 2016-10-21T02:51:34.410 回答