如何保存和加载应用最后的数据+视图? (没有NSCoding?)

时间:2016-01-26 01:06:40

标签: ios swift scenekit nscoding

我正在使用Swift 2和Xcode 7 for iOS 9.2

我的,基本完成,游戏应用创建了一个复杂的视图(SceneKit + SpriteKit +随机变量+游戏进度)。当我切换到菜单并返回时,一切都保持不变(只是切换视图或场景)。但是,当应用程序关闭时,它会以main.storyboard的入口点重新启动,我的数据就会消失。

应用程序应该打开它关闭的相同状态。 我已经尝试使用NSCoding存档相关数据来保存/加载场景 - 但它总是以奇怪的或无信息的错误或白色屏幕结束,这根本无法帮助我找到我的错误。我完全不知道错误在哪里; Xcode没有提供有用的信息。 但即使它奏效了,也无法解决我的切入点问题。

是否有一种简单的方法可以从我的应用程序的上一个状态+视图重新启动? 我需要NSCodingNSUserDefaults吗?

1 个答案:

答案 0 :(得分:0)

您应该使用State Restoration

它的目的是将应用程序恢复到之前的状态,并可用于恢复应用程序的状态,包括其SpriteKit场景。

  

在某些时候,系统可能需要终止您的应用以释放当前前台应用的内存。但是,用户永远不必关心应用程序是否已在运行或已终止。从用户的角度来看,退出应用程序应该只是暂时的中断。当用户返回应用程序时,该应用程序应始终将用户返回到最后一个使用点,以便用户可以继续执行正在进行的任何任务。这种行为为用户提供了更好的体验,并且U​​IKit内置的状态恢复支持相对容易实现。

您可以在{{3>}文档的保存应用程序的启动视觉外观下找到更多详细信息。