2016-11-28 121 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之間共享數據? –

相關問題