2010-06-07 69 views
2

我正在開發一個只讀的應用程序。數據有關係,所以我不能只使用plist或類似的東西。在iPhone上預加載數據庫?

問題:

  • 我應該使用核心數據對於這樣的要求?
  • 如果是這樣,我將如何輸入數據,然後用該數據發佈應用程序?
  • 我該如何做到這一點,以便應用程序在每次加載時都不需要重新填充數據庫?
  • 有沒有辦法創建一個使用SQL命令與sqlite的核心數據模型(即插入,等)?

回答

1

在我的iPhone短的經驗,你有兩個選擇。

  1. 編寫數據導入功能並在第一次應用程序啓動時運行它。
  2. 使用解決方案1,但在模擬器中創建初始sqllite文件,然後在第一次啓動應用程序時,將其複製到應用程序的文檔目錄中。

從過去的經驗來看,選項2對於用戶體驗和首選解決方案來說要快得多。

4

您可以使用SQLite數據庫來完成此操作。

  1. 在您的iOS應用程序中創建模型。
  2. 創建和一臺Mac OSX實用程序命令行應用
  3. 複製源碼文件填充數據庫到您的iOS應用,並與一些代碼

工作通過這兩個教程由線鏈接它,線,然後你會有足夠的理解(和代碼示例)在你自己的應用程序中完成這個任務。

+0

感謝您的快速響應..... 所以這是唯一/最好的方式來實現預加載分貝?例如,微不足道的應用程序會使用這種方法(顯然這將是猜測工作,但在您看來)? 非常感謝 朱爾斯 – Jules 2010-06-07 15:21:32

+0

+1應用程序附帶的所有東西都必須位於應用程序包中。您可以輕鬆包含預填充的數據庫,但始終只能讀取。您唯一的選擇是將所有數據包含在XML中,然後在首次啓動時在應用程序目錄中生成數據庫。用戶通常不喜歡後者,因爲它使他們閃亮的新應用程序陷入困境。 – TechZen 2010-06-07 15:39:38

+0

感謝您的幫助,看起來預填充的sqlite數據庫是更有效的方式。 – Jules 2010-06-07 15:49:35

1

您可以編寫一個導入應用程序數據模型的實用程序項目,並使用一次性代碼n來填充項目以填充Core Data DB。一旦填充了數據庫,只需將實際文件複製到應用程序項目的資源文件夾中,然後在設置持久性存儲時,使用NSBundle將構建應用程序中DB文件的路徑返回。

你完成了。