我目前正在使用单例实例来访问和维护应用中的各种NSObject
。
例如,我有:
VariableStores,维护多个对象,例如currentUser(自定义NSObject
),lastLocation(CLLocation
)等。
包含NSMutableArray
NSOperations
NSOperation
NSUserDefaults
的{{1}}失败,以便稍后重新执行(例如Instagram上传失败)。
如果我杀了应用程序,单例实例将被销毁,并且:
- 必须从服务器端检索一些数据(例如,currentUser),这会增加长度持续时间
- 某些数据无法从服务器端检索,例如TaskManager中的-applicationWillTerminate
(因为它们只在本地管理)
因此,即使应用程序被完全杀死,我也想进一步维护这类对象。
我应该考虑什么是良好做法?将对象序列化为appDidFinishLaunching
并反序列化?还有其他最佳做法吗?
在序列化的情况下,序列化{{1}}委托中的对象并在适当的单例方法(在{{1}}中实例化)中反序列化它们可以被认为是可以接受的吗?
答案 0 :(得分:1)
单例模式的想法只是在控制器之间传输数据而不用担心细节。
您需要做的是您的应用程序的持久数据..
如果您发现需要存储的数据对于plists来说有点大,那么您可以使用核心数据。或者您可以使用sqlite但这会让您在编写大量sql语句时感到有些痛苦。< / p>
或者您可以使用常规plist或nsUserDefaults(我不喜欢该选项)但如果数据太多则有点慢.. 当应用程序转到后台或终止时,您可以保存此数据..