2009-08-27 79 views

回答

34

詳細說明Jergason寫了些什麼。核心數據是一種類似於Java世界中的Hibernate的對象關係映射(ORM)。它將存儲數據(如SQL或.plist文件)的實際機制從代碼中抽象出來。你的代碼只需要處理一個一致的面向對象的框架來獲取對象,更新它們並堅持它們。核心數據支持某種級別的ACID事務,但不支持2階段提交。在iPhone上,核心數據的默認設置用ORM層包裝sqlite數據庫。

使用核心數據的一個有趣的優點是可視化設計數據模型和生成模型類的工具。如果你有一個大型模型,這可以節省大量的時間在手工編碼模型類。

核心數據的另一個有趣的好處是它能夠將數據庫從一個模型版本遷移到另一個模型版本。這在iPhone世界中非常重要,因爲您可能想要將數據模型從一個版本的應用程序修改爲下一個版本。核心數據提供了一種非常直接的方式,可以將持久數據從舊模型遷移到新的數據,而無需編寫大量遷移代碼。您只需定義一個遷移地圖並向您的應用程序代理添加「少量」代碼行,然後就可以爲您進行轉換。

iPhone上的核心數據專爲移動環境而設計。如果您將表中的所有行提取到數組中,它並不會將所有內容都拉到內存中。它創建了Apple所謂的錯誤數組,它只是一個看起來像NSArray的對象。當你訪問數組的各種元素時,核心數據會在使用時取出這些實體(行),而不是查詢。它可以節省內存並幫助您的應用更快運行。總而言之,它是一個非常全功能的ORM層,並不像Hibernate那樣豐富,但足以滿足這種環境的需求。

16

核心數據本質上是一種可視化構建模型的方式,它是模型的一種Interface Builder。您可以創建表示模型類的實體,並定義它們之間的關係。不必編碼具有地址類實例的Person類,您可以通過拖放方式直觀地創建它們。除此之外還有更多,但這是我認爲很酷的一個主要特徵。

另請參閱 this Apple文檔。

相關問題