Ios 如何在应用程序会话之间维护对象?
我目前正在使用单例实例访问和维护应用程序中的各种Ios 如何在应用程序会话之间维护对象?,ios,serialization,nsuserdefaults,Ios,Serialization,Nsuserdefaults,我目前正在使用单例实例访问和维护应用程序中的各种NSObject。 例如,我有: VariableStores,用于维护多个对象,例如currentUser(自定义NSObject)、lastLocation(CLLocation)等 TaskManager,包含一个NSMutableArray,其中的NSOperations操作失败,以便以后重新执行(例如上传失败的Instagram) 如果我关闭应用程序,单例实例将被销毁,并且: -必须从服务器端(例如currentUser)检索某些数据
NSObject
。
例如,我有:
- VariableStores,用于维护多个对象,例如currentUser(自定义
)、lastLocation(NSObject
)等CLLocation
- TaskManager,包含一个
,其中的NSMutableArray
操作失败,以便以后重新执行(例如上传失败的Instagram)NSOperations
NSOperation
(因为它们仅在本地管理)
因此,我想更进一步,即使应用程序完全死掉,也要维护这种对象
我应该把什么看作是一个好的实践?将对象序列化为NSUserDefaults
并反序列化?还有其他最佳实践吗
在序列化的情况下,
-application中的序列化对象将终止
委托,并在singleton的适当的-init方法中反序列化它们(在appDidFinishLaunching
中实例化)是否可以接受?单例模式的思想只是在控制器之间传输数据,而不必担心细节
您需要做的是保存应用程序的数据
如果您发现需要存储的数据对于plist来说有点大,那么可以使用核心数据。。或者您可以使用sqlite,但这会给您编写大量sql语句带来一些麻烦
或者您可以使用常规plist或nsUserDefaults(我不喜欢这个选项),但如果数据太多,则速度会有点慢。。
当应用程序转到后台或终止时,您可以保存此数据 你好,Mohamed,NSUserDefaults相当慢,但由于它只是在应用程序启动时出现,我认为它是可以容忍的。我最终使用了NSUserDefault和序列化对自定义对象进行编码,目前看来效果不错。感谢您的反馈:)太好了,如果您觉得我的答案对您有帮助,请随时推广:)