2011-12-05 127 views
0

在我們的應用程序中,我們下載了大約每個大約300kb的48個sqlite文件並將其保存到磁盤。當用戶進入模塊時,會根據某些條件讀取並顯示來自任何文件的數據的子集。當用戶在模塊中滾動時,當滾動視圖停止滾動時,我們確定停止的位置,並相應地查詢合適的sqlite文件以獲取數據並顯示在屏幕上。這大約需要2秒才能將數據顯示給用戶。 我們希望對此進行優化,並且我已經閱讀過查詢CoreData而不是sqlite文件可以使其更快。將sqlite數據導入CoreData

所以,問題是,我們是否應該嘗試將每個sqlite文件的數據放入CoreData中,然後總是查詢CoreData。我擔心的是,由於我們有48個文件,需要以這種方式插入太多的數據。另一種方法是隻讀取數據的子集應該加載到CoreData而不是所有文件。但這意味着在顯示數據之前,我們確定它是否已經被CoreData獲取並可用,否則我們查詢sqlite。 任何關於什麼是更好的方法去的建議?

回答

1

隨着您提供的信息量的增加,您無法真正瞭解Core Data是否對您的應用程序有意義。你必須爲其他人提供大量的信息,以便對此事進行真正的消息靈通 - 並且這樣的決定很重要。

順便說一句,你似乎在所有的數據將不得不在巨大的數據庫文件在覈心數據的印象 - 這不是這種情況。您可以有多個受管對象模型文件(這些是核心數據的終端產品持久數據庫文件,名爲.xcdatamodeld),並選擇性地打開它們。

最好的辦法是做一些研究,試着找出核心數據和直接使用SQLite之間的關鍵區別。他們都有自己的位置。 Core Data在正確的情況下非常棒 - 它不是一個關係數據庫,它是一個對象圖和持久性管理器,這具有重要意義。核心數據已經針對月球和背部進行了優化,所以如果您在正確的環境下使用它,那就太棒了 - 性能好,並且需要一些繁重的工作來阻止您的工作。但在其他情況下,直接使用SQLite將是更好的選擇。例如,請參閱this blog post瞭解從Core Data切換到SQLite的人員。

還檢查出this nice article的差異。當然還有閱讀蘋果自己的指南,以及wikipedia page

我們很難回答您提出的問題,但如果您對Core Data的某些更具體方面有疑問,請發佈一些新問題 - 這類問題更容易回答。