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

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

在networking上看,这似乎是可能的'应用程序组'。如果所有3个应用程序在同一个应用程序组下,他们会自动有一个'共享文件夹',我可以创build和/或存储一个Realm DB? 应用程序2和3会使用NSFileManager与这个共享文件进行交互吗? 我似乎无法find任何这方面的例子。

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

我的猜测是,你对这个问题的方法主要是使用Realm DB,但Realm DB可能不是正确的工具,因为Realm DB是一个LOCAL数据库服务一个应用程序,如果Realm DB被devise为可以与多个应用程序一起使用,将会是Firebase或Amazon S3之类的API工具。

您需要创build一个API,并且API只有一个支持它的数据库。

举例来说,App1需要保存App2需要能够检索和查看的图片。

您的API将有一个方法称为:

SavePicture(byte[] picture) 

现在,App1通过调用API保存图片,并将图片保存在数据库或服务器硬盘驱动器中,无论哪种方式,数据库中都有一条logging用于保存的图片。

现在App2需要新图片,比如说App2上有一个刷新button,刷新button会调用你的API,另一种方法叫做

 [byte[]] GetPictures() 

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

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