2010-12-19 78 views
0

我仍在學習xcode和objective-c。我只用於爲iPhone環境構建應用程序。 但是我需要用現有的預填充sql數據庫來實現一個應用程序。哪個xcode應用程序用於預填數據庫

對於預填數據庫,我不喜歡在分佈式應用程序中使用代碼,但我寧願有一個單獨的應用程序來做到這一點。

原因是,應用程序只能下載更新的數據庫,而不是整個代碼更新。

所以,問題是:

  1. 這是一個可能的方案
  2. 如果是,我應該建立什麼樣的應用 的在Xcode的 預填數據庫?

感謝

回答

0

我會從這樣做,你泄氣。無論是預填充數據庫的應用程序還是普通用途的應用程序,Apple Review Team都會以相同的程序對待他們,讓開發人員等待數週後才能在App Store上最終提供該應用程序。

此外,據我所知,應用程序之間的通信仍然嚴格限制。如果你想在你的主應用程序和你的數據庫應用程序之間傳輸的數據大於幾行,比如NSString,這可能在技術上不合理。

+0

謝謝。那麼建議是隻構建一個應用程序,並直接在應用程序中完成預填充工作?我的意思是,在開發時在xcode中進行預填充,然後分發應用程序? – Leonardo 2010-12-19 10:02:02

+0

是的,可以在開發過程中預填充或以易於導入的格式將數據包含在軟件包中,並在應用程序第一次運行時導入它。這兩種方法都有優點和缺點。 – 2010-12-20 07:38:24

+0

只是一個問題出現在我的腦海裏,一家報社如何在其應用上發佈新鮮消息?這是不是應用程序之間的溝通?如果我交換一個信息,比如plist或xml,而不是整個數據庫呢? – Leonardo 2010-12-20 10:16:42

1

沒有理由不能讓一個應用程序同時使用數據庫和下載更新。保持數據庫更新而不下載整個事情是非常簡單的。

如果錄製行的創建和修改時間戳在服務器上的數據庫,並跟蹤設備上的那些相同的修改時間戳,更新數據庫的工作原理是這樣的:

  1. 設備確定最新修改時間戳它具有給定的表格。我們將其稱爲latestTimestamp。它將latestTimestamp發送到服務器。

  2. 服務器將latestTimestamp與數據庫中的創建和修改時間戳進行比較。服務器發回根據比較結果的數據:

    • 如果修改時間是早latestTimestamp它並不需要發送的記錄,該設備已經擁有它;

    • 如果修改時間戳以後latestTimestamp和創建時間戳是更早latestTimestamp,它發送該記錄回並指出這是要更新在設備數據庫;

    • 如果修改時間戳以後latestTimestamp和創建時間戳是以後latestTimestamp,它發送該記錄回並指出這是要在設備數據庫添加

  3. 最後,服務器數據庫需要跟蹤已刪除的記錄和記錄每一條記錄刪除時間戳。如果latestTimestamp後面比刪除時間戳記,它發回的記錄需要刪除。

顯然它變得有點複雜,當你有連接的各種表,但只要事發回正確的順序,它的偉大工程。

使用異步數據請求(ASIHTTPRequest庫變得輕而易舉),並在用戶使用應用程序時更新後臺數據。如果在與之交互之前更新數據至關重要,則可以顯示活動指示符並讓用戶等待。

根本不需要單獨的應用程序。

相關問題