2009-05-29 151 views
14

我正在研究一個核心數據應用程序(對於iPhone 3.0,雖然我不認爲這真的會有所作爲),並且它需要隨附充滿數據的「啓動器」數據庫。使用SQLite,我只需在應用程序首次啓動時將應用程序中已填充的數據庫複製到應用程序的文檔目錄中,然後加載該數據庫 - 所有信息都會隨之發佈,我們隨時可以開始使用。但是對於Core Data,我並不確定是否可以將Persistent store保存到App bundle並在Core Data開始實施之前複製它。這會導致任何問題嗎?有相當多的初始數據,所以我不想將它打包成另一種格式,必須通過它進行解析。爲核心數據應用程序提供基礎數據?

+0

你好Zaph你能澄清一下嗎?檢查修改後的文件標記我發現無論擴展名如何,文件總是被修改。你是說Xcode改變文件內容? – 2010-10-22 10:25:22

回答

17

是的,您可以複製預填充的持久存儲。

我創建了一個填充商店的Mac應用程序。它被複制到我的包中,並在開始時複製到Docs目錄。這工作正常。我被告知Core Data Books的例子是以相同的方式開發的。

請注意,這並不意味着您可以複製任何舊的SQLite文件。它必須是一個核心數據持久存儲,儘管我認爲你明白基於你的問題。

+0

您認爲在我的應用第一次運行時以編程方式填充持久性存儲可以嗎?這不會使我的應用程序轉移得相當小,因爲我需要一段時間的SQLite數據庫? – leolobato 2009-09-01 13:17:30

+1

如果您的應用可以快速完成此操作,而不會讓等待的用戶流口水,那麼這似乎是一種很好的方式。 – Hunter 2009-09-01 22:33:28

1

實際上有一個竅門:你必須命名你要複製的文件,而不是使用「.sqlite」,「.bin」這樣的擴展名。否則Xcode將在構建階段將文件複製到應用程序中時更改文件的內容,並且不會加載。

相關問題