根据您的经验,对于仅使用一个主线程 NSManagedObjectContext 的 iOS 应用程序,在可靠性和性能方面,将用户设置和缓存数据从服务器持久保存到磁盘的最佳方法是什么?
我看到了下一个选项:
- 在每次更改结束时保存上下文
- 仅在应用退出时保存上下文(如 Apple 的示例中)
- 在应用程序退出时保存上下文,进入后台或变为非活动状态(例如来电)
- 如果有任何更改,请添加计时器以不时保存上下文
- 调用特别准备的延迟保存例程,该例程将收集调用以保存上下文以确保它们不会经常触发
目前我们使用第一个选项,所以我可以说它的可靠性非常好,即使在调试会话期间Xcode终止应用程序后数据也会保存,但是当应用程序变得越来越复杂时,性能可能会受到影响,尤其是。由于从服务器异步加载数据,在应用程序流程的任何时刻都可能发生对数据库的更改。
另一方面,在应用程序的某些事件(退出、进入后台等)保存将提供最佳性能,但您能否根据您的经验说,确保用户不会丢失数据就足够了?