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

Posted

技术标签:

【中文标题】如何为我的应用程序制作离线数据库?【英文标题】:How to make offline database for my app? 【发布时间】:2016-10-27 07:01:21 【问题描述】:

我在使用 RestAPI 和保存离线数据时遇到问题。有没有人对此有最好的想法。

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

【问题讨论】:

【参考方案1】:

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

数据库:

Core Data:

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

Wikipedia Resource.

Programming Guide.

SQLite - 带有包装器,例如 SQLite.swift-

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

Wikipedia resource.

Realm:

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

Wikipedia resource.

其他选择:

UserDefaults:

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

将数据保存到plist 文件:

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

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

将数据保存到json 文件:

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

Wikipedia resource.

【讨论】:

以上是关于如何为我的应用程序制作离线数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何为个人 android 项目获取 OpenStreetMaps 或 OpenTilesMaps API?

我如何为我的网站用户(如 Y!)制作实时客户端聊天应用程序!信使?

如何为 ChatApp 制作 ListView 来管理所有聊天?

如何为我的引导加载程序制作内核?

如何为我的python应用程序设置试用期?

如何为具有多种语言的词汇列表应用程序制作数据库,例如谷歌翻译?