2016-11-28 126 views
4

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

在网络上查看,这似乎可能与'应用程序组'。如果所有3个应用程序在同一个应用程序组下,他们是否会自动拥有'共享文件夹',我可以创建和/或存储Realm DB?应用程序2和3会使用NSFileManager与此共享文件进行交互吗?我似乎无法找到任何此类实例。

+0

您不能强制用户安装3个应用程序以便能够使用其中一个应用程序。您需要实现一个可以容纳所有数据的服务器端,并将更改推送到其他应用程序。您可以有多个可以一起工作的应用程序,但它们不能共享内部数据库。 – Starlord

回答

0

您需要一个中央数据库来从多个客户端应用读取和写入最简单的API。换句话说,您需要一个适用于您的应用程序的API。您可能认为这比共享文件夹和共享Realm DB更具挑战性,但情况并非如此,您实际上是通过试图重新发明N号移动应用程序如何共享数据对方,无论N个应用程序都驻留在同一个设备上,iOS中的应用程序位于沙盒中,并且您试图规避这一点。

我的猜测是,你对这个问题的方法主要集中在使用Realm DB,但Realm DB可能不是正确的工具,因为Realm DB是一个LOCAL数据库服务于一个应用程序,如果Realm DB被设计为工作与多个应用程序,它将是一个像Firebase或亚马逊S3的API工具。

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

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

你的API将有一个名为方法:

SavePicture(byte[] picture) 

现在应用1致电API保存图像和图像保存,无论是在数据库或服务器的硬盘上,无论哪种方式有一个在数据库中记录保存的图片。

现在应用2希望新的图片,说有上应用2刷新按钮,刷新按钮触摸调用您的API,另一种方法被称为

[byte[]] GetPictures() 

GetPictures API方法返回字节的[]每个数组是App2可以显示的图像。

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

+0

如我在问题中提到的,App1有一个连接服务器的API。所有其他应用程序在从服务器检索信息并本地存储后,与在应用程序1中创建的本地数据库进行通信。所有服务器请求都需要经过app1 – user2363025

+0

@ user2363025你需要一个API,一切都通过API,非常好,你已经有一个,使用它的App2和App3 –

+0

@ user2363025你不是试图使用Realm DB来解决在App1和App2之间共享数据? –

相关问题