gpt4 book ai didi

ios - 如何在应用程序 session 之间维护对象?

转载 作者:行者123 更新时间:2023-11-29 03:26:05 25 4
gpt4 key购买 nike

我目前正在使用单例实例来访问和维护应用程序中的各种NSObject。例如,我有:

  • VariableStores,维护多个对象,例如 currentUser(自定义 NSObject)、lastLocation(CLLocation)等。

  • TaskManager,包含已失败的 NSOperationsNSMutableArray,以便稍后重新执行(例如上传失败的 Instagram)。

如果我终止该应用程序,单例实例将被销毁并且: - 必须从服务器端检索一些数据(例如,当前用户),这会增加持续时间 - 有些数据无法从服务器端检索,例如TaskManager中的NSOperation(因为它们仅在本地管理)

因此,即使应用程序被完全终止,我也想更进一步并维护此类对象。

我应该将什么视为好的做法?将对象序列化为 NSUserDefaults 并反序列化?还有其他最佳实践吗?

在序列化的情况下,在 -applicationWillTerminate 委托(delegate)中序列化对象并在单例的适当 -init 方法(在 appDidFinishLaunching 中实例化)中反序列化它们可以被视为可以接受吗?

最佳答案

单例模式的思想就是在controller之间传递数据,不用担心细节..

你需要做的是你的应用程序的持久化数据..

如果你发现你需要存储的数据对于 plist 来说有点大,你可以使用核心数据.. 或者你可以使用 sqlite,但是这会让你写很多 sql 语句有点痛苦..

或者您可以使用常规的 plist 或 nsUserDefaults(我不喜欢那个选项)但是如果数据太多,它会有点慢..您可以在应用程序进入后台或终止时保存此数据。

关于ios - 如何在应用程序 session 之间维护对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20441167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com