【发布时间】:2014-04-29 17:12:55
【问题描述】:
我是第一次实现 iOS 状态保存和恢复,所以这个问题对于更有经验的人来说可能很明显!
我有一个故事板,其中包含通往各种场景的多条路径。例如,用户可以从场景 A 开始到场景 B,然后到场景 C,或者用户可以直接到场景 C。
在 View Controller A 中创建一个“大”NSDictionary,然后将其传递给 View Controller B,然后通过 prepareForSegue 方法传递给 View Controller C(或直接传递给 C)。
我相信我能够恢复视图控制器 A 中的 NSDictionary,但是如何为视图控制器 B 和/或 C 获取它而不是制作额外的副本?
【问题讨论】:
-
您的字典中有多少键/值?
-
查看
NSUserDefaults或单例模式,然后查看NSCoding协议。随着您的应用程序的逻辑从字典中管理其状态发展而来,您可能希望将状态保留在自定义对象或单例类中。如果是前者,您可以将该对象写入磁盘,或写入NSUserDefaults以根据需要提取。如果您使用单例方法,您将在内存中拥有该实例,以便在需要时使用。无论如何,随着状态的复杂性增加,有很多方法可以管理状态。 -
NSDictionary 非常庞大且复杂。虽然我可以创建多个副本,但我很想知道如何避免它。
标签: ios uistoryboard uistoryboardsegue state-restoration