Swift 中的 iOS 8 和 9:首次启动期间 [警告:无法创建正在进行的恢复标记文件]
Posted
技术标签:
【中文标题】Swift 中的 iOS 8 和 9:首次启动期间 [警告:无法创建正在进行的恢复标记文件]【英文标题】:iOS 8 & 9 in Swift: [Warning: Unable to create restoration in progress marker file] during first launch 【发布时间】:2016-03-20 07:25:01 【问题描述】:ios 8 和 9 设备以及模拟器都会出现此警告消息:
[警告:无法创建正在恢复的标记文件]
它只在我第一次启动(首次安装)应用程序时显示一次。任何后续从 Xcode 启动此应用程序而不卸载它都不会显示此警告消息。
这对我的应用来说正常吗?这就是我对代码所做的:
AppDelegate.swift:
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
// Override point for customization after application launch.
return true
func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool
return true
func application(application: UIApplication, shouldSaveApplicationState coder:NSCoder) -> Bool
return true;
func application(application: UIApplication, shouldRestoreApplicationState coder:NSCoder) -> Bool
return true;
Restoration ID 纯粹在 Main.storyboard 中完成,因此 RestorationID 和 StoryboardID 相同。而且,只有顶层 View 具有与 StoryboardID 相同的 RestorationID。
在默认创建的选项卡式视图应用程序中,我将以下内容应用于我的两个控制器(将第二个控制器命名为“SecondView”)
StoryboardID and RestorationID are the same
Top View has the RestorationID same as the StoryboardID
同时,如果我简单地将以下函数设置为 false 会发生什么:
func application(application: UIApplication, shouldSaveApplicationState coder:NSCoder) -> Bool
return true;
func application(application: UIApplication, shouldRestoreApplicationState coder:NSCoder) -> Bool
return true;
即使我的应用程序需要在锁定屏幕或后台长时间运行,它仍然可以工作吗?
【问题讨论】:
【参考方案1】:仅供参考。这解决了我的问题:https://***.com/a/20157399/49748
如果这个警告仍然出现,你可以检查你是如何在 Xcode 中运行你的应用程序的。我在 Xcode 模拟器中运行我的应用程序,并且必须按照特定的顺序来触发状态保存。
在 Xcode 模拟器中启动应用程序
在 Xcode 模拟器中,单击“Home”按钮将应用程序置于后台。应该调用视图控制器的
encodeRestorableStateWithCoder
方法回到Xcode,点击“stop”按钮终止模拟
在 Xcode 模拟器中,双击“主页”按钮,然后从应用切换器中删除该应用并
返回 Xcode,再次运行应用程序。
【讨论】:
以上是关于Swift 中的 iOS 8 和 9:首次启动期间 [警告:无法创建正在进行的恢复标记文件]的主要内容,如果未能解决你的问题,请参考以下文章
iOS 8 和 Cordova:应用程序在首次启动时立即请求推送通知权限