iOS 状态恢复

标签 ios cocoa-touch uikit-state-preservation

我是 iOS 开发的新手,我正在尝试了解 State Restoration API。没有在我的应用程序中实现 API,当应用程序退出并恢复时,它会将应用程序的状态恢复到用户退出前的状态。如果这不是状态恢复,那么这是什么机制?它与 State Restoration 有何不同?当默认机制似乎可以满足我的需要时,我为什么要实现状态恢复。

我确定我只是不理解某些东西,但我不知道它是什么。

最佳答案

如果您打开多任务托盘并强制退出您的应用程序,如果您没有实现任何恢复状态的方法,该应用程序将启动并通过 applicationDidFinishLaunching 正常运行其 UIWindow 层次结构。状态恢复只是提供了一种简单的方法来归档符合 NSCoding 的对象,所以如果你决定让你的 View 层次结构兼容,你可以传入你的导航堆栈,例如。然后,当启动时调用适当的方法时,如果应用程序没有退出暂停状态而是冷启动,它将使用这些存档对象重新填充层次结构。

虽然它不只是实现几个方法,但没有一个状态恢复是免费为您处理的。我只是相信它会处理存档发生的位置以及文件名是什么。由您决定归档什么,以及在取消归档时如何处理这些对象。

关于iOS 状态恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533678/

相关文章:

ios - 将 NSLayoutConstraint 常量重置为其 Storyboard 中的原始值

iphone - 如何沿着弯曲路径拖动、抛掷 View 并为其设置动画

ios - 我们在哪里可以找到 WWDC 2012 session 208 中提到的 "Restrospector"工具?

iphone - UIDocumentsInteractionController 显示 iBooks 但不打开它

ios - 标签栏和导航 Controller 应用程序中的状态恢复

core-data - 如何保留临时 NSManagedObjectContext 而不将其保存到父上下文

ios从应用程序发送图像到邮件客户端不显示

ios - 当 contentSize 减小时,如何让 UIScrollView 调用 scrollViewDidScroll

ios - 为什么 UIView 动画第二次出现在 Controller 上时会忽略持续时间?

iphone - iPhone SDK-如何序列化ABRecord?