ios - 在多个 swift 应用程序之间共享数据库

标签 ios swift realm nsfilemanager ios-app-group

我需要能够拥有 3 个可以相互通信的 swift 应用程序。将应用程序 1 视为与服务器通信并将信息存储在本地数据库中的基础应用程序,应用程序 2 和应用程序 3 需要读取(并可能写入)在应用程序 1 中创建的数据库。

在网上看,这似乎可以通过“应用程序组”实现。如果所有 3 个应用程序都在同一个应用程序组下,它们会自动拥有一个“共享文件夹”,我可以在其中创建和/或存储 Realm DB ?应用程序 2 和 3 会使用 NSFileManager 与这个共享文件交互吗?我似乎找不到任何这方面的例子。

最佳答案

您需要一个中央数据库来从多个客户端应用程序读取和写入,这是最简单的 API。换句话说,您的应用程序需要一个 API。您可能认为这比共享文件夹和共享 Realm DB 更具挑战性,但事实并非如此,您实际上通过尝试重新发明 N 个移动应用程序共享数据的方式使问题变得更加复杂彼此之间,无论 N 个应用程序都驻留在同一设备上,在 iOS 中,一个应用程序都在沙盒中,而您试图规避这一点。

我的猜测是,您解决这个问题的方法主要是使用 Realm DB,但是如果 Realm DB 被设计为与多个应用程序,它将是一个 API 工具,如 Firebase 或 Amazon S3。

您需要创建一个 API,而该 API 只有一个数据库支持。

例如,App1 需要保存一张图片,App2 需要能够检索和查看该图片。

您的 API 将有一个名为:

SavePicture(byte[] picture)

现在 App1 通过调用你的 API 保存图片,图片被保存在数据库中或服务器硬盘上,无论哪种方式,数据库中都有保存图片的记录。

现在App2想要新图片,假设App2上有一个刷新按钮,刷新按钮触摸调用你的API,另一个方法调用

[byte[]] GetPictures()

GetPictures API 方法返回一个 byte[] 数组,每个数组都是 App2 可以显示的图像。

你可能想看看 Firebase,这似乎是人们使用的第三方工具,不熟悉构建 API,或者学习如何使用 PHP、Ruby on Rails 构建 API 、ASP.NET Web API、Python 等,数据库可以是 MySQL、PostgreSQL、Sql Server、MongoDB、RavenDB 等。

关于ios - 在多个 swift 应用程序之间共享数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40849460/

相关文章:

ios - Mac OSX 在构建 MonoDevelop iOS 应用程序时要求访问钥匙串(keychain)

ios - 在真实设备上未授予访问照片库的权限

ios - 绘制 UITableView 的单元格会出现视觉错误

swift - 带有事件圆圈的自定义 TabBarController

swift - 使用 NSDate() 进行 Realm 查询时出错

ios - 使 UIView 可滚动和可缩放

ios - 成功登录后导航未激活

ios - 在 UIScrollView 中滚动和缩放 UIImageView

ios - 初始化 Realm 对象时崩溃

ios - 安装 RealmSwift pod 也会安装 Realm (ObjC)?