如何为我的应用程序创建脱机数据库?

时间:2016-10-27 07:01:22

标签: ios swift database persistence

我在使用RestAPI并保存离线数据时出现问题。是否有人对此有最好的想法。

我想从本地数据库中的服务器保存JSON响应,并在没有可用的互联网时使用该数据。比如Firebase实时数据库。

1 个答案:

答案 0 :(得分:5)

我认为您要求的是一种将数据保存到您的应用程序中的机制。有几种方法可以实现这一目标。虽然它可能过于宽泛而无法提供详细的答案,但您可能需要检查选项:

数据库:

  

核心数据是由对象图和持久性框架提供的   Apple在macOS和iOS操作系统中。它是在Mac中引入的   OS X 10.4 Tiger和iOS与iPhone SDK 3.0。它允许数据   由关系实体 - 属性模型组织的序列化   到XML,二进制或SQLite存储。可以使用操作数据   代表实体及其关系的更高级别对象。   Core Data管理序列化版本,提供对象生命周期   和对象图管理,包括持久性。核心数据   直接与SQLite接口,使开发人员与之隔离   基础SQL。

     

<子> Wikipedia Resource.

     

<子> Programming Guide.

  

SQLite是一个包含在C中的关系数据库管理系统   编程库。与许多其他数据库管理相反   系统,SQLite不是客户端 - 服务器数据库引擎。相反,它是   嵌入到最终计划中。

     

<子> Wikipedia resource

  

Realm最初是一个开源对象数据库管理系统   适用于移动设备(Android / iOS),也适用于Xamarin等平台   或React Native,以及其他,包括桌面应用程序(Windows),   并根据Apache许可证授权。

     

<子> Wikipedia resource.


其他替代方案:

  

UserDefaults类为其提供编程接口   与默认系统交互。默认系统允许   应用程序,以自定义其行为以匹配用户的首选项。对于   例如,您可以允许用户指定其首选单位   测量或媒体播放速度。应用程序存储这些首选项   将值分配给用户默认数据库中的一组参数。   这些参数被称为默认值,因为它们通常是   用于确定应用程序在启动时的默认状态或其行为方式   默认情况下。

  • 将数据保存到plist个文件:
  

在macOS,iOS,NeXTSTEP和GNUstep编程框架中,   属性列表文件是存储序列化对象的文件。属性   列表文件使用文件扩展名.plist,因此经常使用   称为p-list文件。

     

属性列表文件通常用于存储用户的设置。他们   也用于存储有关包和应用程序的信息,a   任务由旧Mac OS中的资源分支服务。

  • 将数据保存到json个文件:
  

在计算中,JavaScript Object Notation或JSON是一个开放标准   使用人类可读文本传输数据对象的文件格式   由属性 - 值对和数组数据类型(或任何其他类型)组成   可序列化的值)。这是一种非常常见的数据格式   异步浏览器 - 服务器通信,包括作为替代   在一些AJAX风格的系统中用于XML。

     

<子> Wikipedia resource.