在同步事务的应用程序中使用或不使用CoreData?

时间:2017-04-12 15:19:49

标签: ios core-data

我是一名初学者,我与我的朋友进行了这场小小的辩论,他是一位拥有五年以上经验的Ruby和rails开发人员,并且基本上为网络工作,我知道他得到的信息来自各种演讲他去过。

所以,我正在学习和建设一个项目。该项目需要从其他设备获取数据,并从管理员设备向其他用户发送数据。

我想构建这个应用程序,以便在设备出于某种原因离线时(用户可以旅行,并且发现自己没有信号)能够保存数据。

我的朋友说我不需要将数据保存到设备中,或者不使用CoreData,我可能需要某种类型的缓存来在设备离线时临时保存数据。

我告诉他,这不像天气应用,你只下载数据并显示给用户,我需要更改数据并将其发送回服务器,以便其他用户看到更改。

所以,我的问题是:

我是否需要在设备离线时使用CoreData在本地保存数据并向解析JSON的服务发送请求?

哪种方法最好?

非常感谢您的时间和知识!

1 个答案:

答案 0 :(得分:0)

  

我的朋友说我不需要将数据保存到设备中,或者不使用CoreData,我可能需要某种类型的缓存来在设备离线时临时保存数据。

如果设备上没有缓存,您的朋友会认为缓存位于何处?缓存但不保存数据是相互矛盾的想法。

核心数据可用作离线缓存。还有其他选项,包括保存属性列表文件和直接使用SQLite。哪一个最好取决于您将如何使用应用程序中的数据。

  

我需要在设备离线时使用CoreData在本地保存数据,还是使用CoreData保存所有内容并使用解析JSON文件向服务器发送请求?

请注意,我们没有详细描述您的应用

  • 如果服务器提供JSON格式的数据,那么您需要解析它。
  • 如果要脱机使用数据,则需要以某种方式将其保存在设备上。你是否称之为缓存是没有意义的。
  • 核心数据是一种可能的方法。它可能是也可能不是正确的,但这是一个单独的问题,如果没有关于你的应用如何使用这些数据的更多信息,就无法回答。

一种常见的方法是从服务器请求数据并在本地保存。访问应用程序中的数据时,请在本地副本中查找。保持服务器通信和本地数据访问分开;如果它们是相同的东西,那么您直接与服务器通信以获取所有数据并且没有离线访问权限。跟踪本地更改,以便将它们发送回服务器。