一尘不染

如何为我的应用制作离线数据库?

swift

我在使用RestAPI和保存脱机数据时遇到问题。是否有人对此有最好的想法。

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


阅读 151

收藏
2020-07-07

共1个答案

一尘不染

我认为您需要的是一种将数据持久保存到应用程序中的机制。有几种方法可以实现此目的。尽管它可能太宽泛,无法提供详细的答案,但您可能需要检查以下选项:

数据库:

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

维基百科资源。

编程指南。

SQLite是C编程库中包含的关系数据库管理系统。与许多其他数据库管理系统相比,SQLite不是客户端服务器数据库引擎。而是将其嵌入到最终程序中。

维基百科资源

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

维基百科资源。

其他选择:

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

  • 将数据保存到 plist 文件:

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

属性列表文件通常用于存储用户的设置。它们还用于存储有关包和应用程序的信息,这是旧Mac OS中的资源派生所完成的任务。

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

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

维基百科资源。

2020-07-07