如何为我的应用程序制作离线数据库?
Posted
技术标签:
【中文标题】如何为我的应用程序制作离线数据库?【英文标题】:How to make offline database for my app? 【发布时间】:2016-10-27 07:01:21 【问题描述】:我在使用 RestAPI
和保存离线数据时遇到问题。有没有人对此有最好的想法。
我想将来自服务器的 JSON 响应保存在本地数据库中,并在没有互联网可用时使用该数据。比如Firebase
实时数据库。
【问题讨论】:
【参考方案1】:我认为您要的是一种将数据持久保存到应用程序中的机制。有几种方法可以实现这一点。尽管提供详细答案可能过于宽泛,但您可能需要检查选项:
数据库:
Core Data:SQLite - 带有包装器,例如 SQLite.swift-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.
Realm:SQLite 是一个包含在 C 语言中的关系数据库管理系统 编程库。与许多其他数据库管理相比 系统,SQLite 不是客户端-服务器数据库引擎。相反,它是 嵌入到最终程序中。
Wikipedia resource.
Realm 是一个开源的对象数据库管理系统,最初 适用于移动设备 (android/iOS),也可用于 Xamarin 等平台 或 React Native 等,包括桌面应用程序 (Windows), 并根据 Apache 许可证获得许可。
Wikipedia resource.
其他选择:
UserDefaults:将数据保存到plist 文件:UserDefaults 类为 与默认系统交互。默认系统允许 应用程序来自定义其行为以匹配用户的偏好。为了 例如,您可以允许用户指定他们喜欢的单位 测量或媒体播放速度。应用程序通过以下方式存储这些首选项 将值分配给用户默认数据库中的一组参数。 这些参数被称为默认值,因为它们通常 用于确定应用程序在启动时的默认状态或其行为方式 默认情况下。
将数据保存到json 文件:在 macOS、iOS、NeXTSTEP 和 GNUstep 编程框架中, 属性列表文件是存储序列化对象的文件。财产 列表文件使用文件扩展名 .plist,因此通常 称为 p-list 文件。
属性列表文件通常用于存储用户的设置。他们 还用于存储有关捆绑包和应用程序的信息, 由旧 Mac OS 中的资源分支提供的任务。
在计算中,javascript Object Notation 或 JSON 是一种开放标准 使用人类可读文本传输数据对象的文件格式 由属性-值对和数组数据类型(或任何其他 可序列化的值)。它是一种非常常见的数据格式,用于 异步浏览器-服务器通信,包括作为替代 用于某些 AJAX 样式系统中的 XML。
Wikipedia resource.
【讨论】:
以上是关于如何为我的应用程序制作离线数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何为个人 android 项目获取 OpenStreetMaps 或 OpenTilesMaps API?
我如何为我的网站用户(如 Y!)制作实时客户端聊天应用程序!信使?