2010-09-04 113 views
0

我來自一個Ruby on Rails環境,我非常寵愛Active Record。我在iPhone上使用sqlite做了一個小小的概念驗證項目,並且我意識到更多我被寵壞了;)核心數據或... SQLite

對於下一個應用程序,我考慮使用Core Data(因爲我相信它的工作方式將接近到活動記錄)。我的應用程序將爲用戶提供大量的數據(與許多相關的表),我打算在常規基礎上(每2-3個月)更新一次數據。使用sqlite這將會像下載一個sqlite文件一樣簡單,使用Core Data也是如此簡單?

回答

2

核心數據非常類似於有效 數據 記錄。主要區別在於活動數據從SQL存儲演變爲應用程序對象代碼,而核心數據則從應用程序對象演變爲各種商店。更簡潔地說,Active Data在沒有SQL存儲的情況下不起作用,但Core Data可以正常工作,不存在任何類型的存儲。

因此,Core Data的真正實力在於建模對象之間的複雜關係。使用的持久存儲的類型(如果有的話)基本上是不相關的。核心數據使得將複雜模型鏈接到複雜的計算機和人機界面變得非常簡單。

另一方面是你必須保持對象圖的完整性,所以你不能批量導入持久存儲。您下載數據,創建託管對象並將其插入持久性存儲中。雖然這看起來很複雜並且很慢,但是與下載整個商店無關,無論您是否需要其中的所有數據,其實並沒有什麼特別之處。

即使它更復雜,將核心數據集成到應用程序的其他部分的難易程度通常也會得到回報。

如果您正在考慮編寫和維護多個iOS應用程序,那麼您應該花時間去攀登Core Data的學習曲線。

+0

如果您需要序列化任何對象,CoreData絕對是您的選擇! – Jonathan 2010-09-04 19:21:12

+0

您是指Active Data或Active Record? – 2010-09-05 09:54:31

+0

對不起Active Record。 – TechZen 2010-09-05 10:52:12

1

SQLite是一個持久性存儲,Core Data是一個對象圖。它們並不完全相同 - 儘管Core Data可以在SQLite之上生存。

真的,這取決於您要存儲多少數據,以及除了寫入數據之外,還需要查看它的頻率。使用Core Data的更新過程比SQLite要困難得多,特別是如果你有很多數據;然而,對於常見情況(小更新,讀取)可能更容易處理,這可能會抵消很多這些問題。