如何在应用会话之间维护对象?

时间:2013-12-07 12:05:59

标签: ios serialization nsuserdefaults

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

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

  • 包含NSMutableArray NSOperations NSOperation NSUserDefaults的{​​{1}}失败,以便稍后重新执行(例如Instagram上传失败)。

如果我杀了应用程序,单例实例将被销毁,并且:   - 必须从服务器端检索一些数据(例如,currentUser),这会增加长度持续时间   - 某些数据无法从服务器端检索,例如TaskManager中的-applicationWillTerminate(因为它们只在本地管理)

因此,即使应用程序被完全杀死,我也想进一步维护这类对象。

我应该考虑什么是良好做法?将对象序列化为appDidFinishLaunching并反序列化?还有其他最佳做法吗?

在序列化的情况下,序列化{{1}}委托中的对象并在适当的单例方法(在{{1}}中实例化)中反序列化它们可以被认为是可以接受的吗?

1 个答案:

答案 0 :(得分:1)

单例模式的想法只是在控制器之间传输数据而不用担心细节。

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

如果您发现需要存储的数据对于plists来说有点大,那么您可以使用核心数据。或者您可以使用sqlite但这会让您在编写大量sql语句时感到有些痛苦。< / p>

或者您可以使用常规plist或nsUserDefaults(我不喜欢该选项)但如果数据太多则有点慢.. 当应用程序转到后台或终止时,您可以保存此数据..