在storyboard Xcode9.2示例中需要恢复id是什么?我看到了这个IOS Storyboards: Restoration ID just like Storyboard ID?,但不理解。谁能帮我举个例子。
发布于 2018-04-23 16:12:15
TL;DR
当你想要在你的应用程序中保存和恢复它的状态时,恢复标识符被设置为UIViewController (通常在你的故事板中)。没有恢复标识符的视图控制器将不会被考虑用于保存和恢复机制。
为什么需要应用程序状态恢复?
由于iOS设备的内存容量有限,因此系统需要有效地管理这些有限的资源,并在运行的应用程序之间共享这些资源。当你运行你的应用程序时,系统(OS)需要为它分配内存。如果有足够的内存,那么很好。如果没有足够的内存,操作系统将确定哪个挂起的应用程序使用最多的内存,并且根据操作系统为该应用程序确定的优先级,它将终止/终止并回收该内存,并将其用于最高优先级的应用程序(您刚刚打开的应用程序)。
状态恢复是如何工作的
保存状态
如果您按下主页按钮并将您的应用程序置于挂起状态,则上述过程也会在您的应用程序中发生。如果其他高优先级应用程序需要内存,如果您的应用程序消耗了大量资源,那么您的应用程序将被终止。这就是状态还原发挥作用的地方。如果您启用了状态还原,则每当您按下主页按钮时,机制都会存储分配了RestorationId的视图控制器,以及它的视图层次结构和必要的信息。你需要在磁盘上重建你的应用程序以前的状态。
正在恢复状态
假设您的应用程序被操作系统终止,当您从主屏幕打开您的应用程序时,状态恢复机制将从磁盘中检索持久化视图控制器及其视图层次结构,并将为您恢复它们(当然,您需要在重新创建应用程序的状态方面做出贡献),这样即使您的应用程序被系统粗暴地终止,用户体验也不会受到影响。
发布于 2018-04-23 15:53:53
恢复标识符是一个字符串id,您需要将其分配给要保留和恢复的任何视图控制器或视图。在状态保留期间,视图分层结构中具有恢复标识符的任何视图控制器或视图都将被保存到磁盘。
身份检查器中的故事板标识用于实例化故事板中的对象。
创建对象和重新创建对象有两件事。恢复保留了你的视图或任何视图控制器时,应用程序相当,并可以恢复(重新创建)你的视图,当你回来。
而Storyboard ID用于实例化视图控制器意味着创建对象。并用于识别故事板上的对象。
https://stackoverflow.com/questions/49975712
复制相似问题