2011-03-29 134 views
1

我正在編寫兩部分的應用程序。桌面應用程序運行在桌面上(可能是一個AIR應用程序)和運行在iPhone上的iPhone應用程序。我是iPhone開發新手。我可以在桌面應用程序和我的iPhone應用程序之間共享SQLite數據庫嗎

這兩個應用程序都可以運行完全相同的sqlite數據庫。理想情況下,我想以某種方式將sqlite數據庫文件複製到移動應用程序的Documents文件夾中,並在那裏使用它,反之則利用iTunes同步。

我到底該怎麼做?有沒有更好的練習方式來運行手機和桌面應用程序之間的同步?如果有的話,是否有任何如何最好地做到這一點的例子?

我發現的大多數解決方案都假定數據庫以獨立的格式(如MySQL)存儲,並且數據需要以某種方式序列化和反序列化。我只想嘗試使用相同的文件並將文件複製過來。

+0

我想這裏的另一件事是如上所述我對iPhone的發展很新。我可以重新解釋這個問題,因爲我如何在兩個應用程序之間進行最佳通信?我應該在桌面應用程序中設置一個網絡服務器,然後讓手機應用程序通過http連接到它?或者我可以通過iTunes訪問電話數據庫嗎?如果是這樣,我該怎麼做? – Rudi 2011-03-29 16:18:49

回答

3

SQLite是一個單用戶數據庫。如果你去「複製數據庫」路線,那麼你可能會丟失數據。如果桌面用戶添加了數據並且iOS用戶添加了數據,則在複製文件時,某人的數據將會丟失。

您可以實現自己的「同步」算法,以識別數據庫之間的更改並保持同步。這可能是一個痛苦,但是一個常見的解決方案,我會推薦。我這樣做了桌面/ iOS應用程序。

您可以選擇使用數據庫服務器,但這需要網絡訪問才能連接到它。

+0

那麼你如何建議我在兩個應用程序之間進行通信?寧願不需要互聯網接入。 – Rudi 2011-03-29 15:27:46

+0

正如我所說,我會推薦「同步」方法,但它要求兩個設備至少在同一個wifi網絡上。如果重要的話,他們將不需要互聯網接入。 – 2011-03-29 15:32:04

相關問題