gpt4 book ai didi

iphone - iOS:在 applicationWillTerminate 上序列化对象以实现数据持久性有多安全?序列化是否有可能无法完成?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:27 26 4
gpt4 key购买 nike

我了解到您通常在 applicationWillTerminate 上使用 NSCoder 协议(protocol)序列化对象以实现数据持久化。不过,这个序列化是否有可能无法完成? IE。电池即将耗尽,因此应用程序退出,在序列化完成之前,电池电量完全耗尽。

我正在创建一个应用程序,其中涉及用户添加新对象(如财务记录)的过程。因此,序列化对象失败会非常烦人,因为重新创建该对象会有点耗时。因此,我应该在用户单击“保存”按钮后立即进行序列化,还是可以确定序列化将在 applicationWillTerminate 上完成 99.9% 的时间?

类似地,如果我将此数据同步到服务器,我的应用程序是否有足够的时间在 applicationDidEnterBackground 上执行此同步?

最佳答案

对于不选择退出多任务处理的应用程序(通过在 Info.plist 中将 UIApplicationExitsOnSuspend 设置为 YES),applicationWillTerminate: 不会总是被调用,你应该在 applicationDidEnterBackground: 中进行序列化。

最大的风险是您的序列化时间过长,看门狗守护程序会在您的应用程序完成之前将其杀死。如果您的序列化时间超过 5 秒,就会发生这种情况,如果您序列化大型对象,则很可能会发生这种情况。

关于iphone - iOS:在 applicationWillTerminate 上序列化对象以实现数据持久性有多安全?序列化是否有可能无法完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6650797/

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