iOS數(shù)據(jù)存儲之Core Data(一)

iOS數(shù)據(jù)存儲之Core Data(一)

Core Data 基礎(chǔ)

Core Data 是一個API集合,被設(shè)計用來簡化數(shù)據(jù)對象的持久存儲。Core Data 提供一種模型用于保存模型對象并在之后取回他們。Core Data 還管理對對象模型的改變,提供撤銷支持,并確保模型對象間關(guān)系的一致性。

Core Data 架構(gòu)

上圖是Core Data的設(shè)計概覽。其中的關(guān)鍵組件是數(shù)據(jù)存儲(data store)、持久存儲協(xié)調(diào)器(Persistent Store Coordinator)、托管對象模型(Managed Object Model)和托管對象上下文(Managed Object Context)。

1. 數(shù)據(jù)存儲

數(shù)據(jù)存儲是保存數(shù)據(jù)的一個或一組文件。它是當(dāng)保存消息發(fā)送到Coredata 后實際寫入到磁盤的文件。通常在移動應(yīng)用程序中只有一個數(shù)據(jù)存儲文件。
依賴于創(chuàng)建數(shù)據(jù)存儲時使用的參數(shù),數(shù)據(jù)存儲可以是一個二進制文件、SQLITE數(shù)據(jù)庫或一個內(nèi)存中的數(shù)據(jù)文件。

2. 持久存儲協(xié)調(diào)器

持久協(xié)調(diào)存儲器在托管對象上下文和數(shù)據(jù)存儲之間扮演中間人的角色。協(xié)調(diào)器從上下文中獲得數(shù)據(jù)請求并將它們轉(zhuǎn)發(fā)給合適的數(shù)據(jù)存儲,協(xié)調(diào)器還允許上下文訪問多個數(shù)據(jù)存儲。協(xié)調(diào)器將數(shù)據(jù)存儲和上下文關(guān)聯(lián)在一起。持久存儲協(xié)調(diào)器是NSPersistentCoordinator類的實例。持久存儲協(xié)調(diào)器不是線程安全的。

3. 托管對象模型

托管對象模型代表數(shù)據(jù)模型架構(gòu),是NSManagedObjectModel類的實例。
模型由一組實體組成,他們定義了應(yīng)用程序中的數(shù)據(jù)對象。數(shù)據(jù)模型通常使用XCode的提供的圖形化數(shù)據(jù)建模工具創(chuàng)建。數(shù)據(jù)模型應(yīng)該定義程序中使用的數(shù)據(jù)對象。持久協(xié)調(diào)存儲器依據(jù)數(shù)據(jù)模型中定義的約定創(chuàng)建托管對象。

4. 托管對象上下文

托管對象上下文提供訪問托管數(shù)據(jù)對象的接口,托管對象上下文是NSManagedObjectContext類的實例。上下文用于保存所有托管對象,托管對象是NSManagedObject類或其之類的實例??梢栽谏舷挛闹刑砑訉ο蟆h除對象、修改對象,當(dāng)準(zhǔn)備好后,可以讓上下文將當(dāng)前狀態(tài)提交到磁盤保存??梢栽谏舷挛闹袆?chuàng)建獲取請求將數(shù)據(jù)從存儲中取回到上下文,進而對數(shù)據(jù)進行處理。

小結(jié)

代碼在這里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容