一. 概念
<b>*CoreData</b> 是一種數(shù)據(jù)持久化框架(所謂的數(shù)據(jù)持久化可以理解為數(shù)據(jù)的本地化操作), 用來(lái)管理實(shí)體類(lèi)對(duì)象的生命周期, 管理實(shí)體類(lèi)對(duì)象的關(guān)系, 和持久化等方面的問(wèn)題.
二.特點(diǎn)
1.可視化, 不用寫(xiě)底層的SQLite語(yǔ)句, 大量簡(jiǎn)化了代碼量
2.數(shù)據(jù)最終的存儲(chǔ)類(lèi)型可以是: SQLite數(shù)據(jù)庫(kù), XML, 二進(jìn)制文件, 內(nèi)存或者自定義數(shù)據(jù)類(lèi)型.
3.與iOS緊密結(jié)合, 且只用于iOS開(kāi)發(fā)
4.存儲(chǔ)內(nèi)容以對(duì)象的形式存儲(chǔ), 復(fù)合面向?qū)ο蟮乃枷?/p>
三.* 構(gòu)成
<b>學(xué)習(xí)CoreData之前, 理解以下幾個(gè)類(lèi)是必要的! </b>
(1)NSManagerObjectContext(被管理的數(shù)據(jù)上下文):數(shù)據(jù)管理器類(lèi)
作用: 操作實(shí)際內(nèi)容, 對(duì)持久層的操作:插入數(shù)據(jù), 查詢(xún)數(shù)據(jù), 刪除數(shù)據(jù), 修改數(shù)據(jù)等操作
注意: 它是我們開(kāi)發(fā)中主要交互的類(lèi)(我們?cè)诔绦蛑型ㄟ^(guò)上下文觸發(fā)命令--->得到結(jié)果)
(2)NSManagerObjectModel(被管理的數(shù)據(jù)模型):數(shù)據(jù)模型類(lèi)
定義: 數(shù)據(jù)庫(kù)的結(jié)構(gòu)或數(shù)據(jù)庫(kù)實(shí)體, 包含了各個(gè)實(shí)體(表)的定義信息
作用: 用來(lái)構(gòu)建整個(gè)數(shù)據(jù)庫(kù)的表結(jié)構(gòu), 添加實(shí)體的屬性, 建立屬性之間的關(guān)系
(3)NSPersistentStoreCoordinator(持久化存儲(chǔ)助理):數(shù)據(jù)連接器類(lèi)
作用: 設(shè)置數(shù)據(jù)存儲(chǔ)的名字, 位置, 存儲(chǔ)方式, 存儲(chǔ)時(shí)間(具體的實(shí)現(xiàn)不需要我們干涉, 我們操作的只是:上下文)
工作原理: 從下層文件取出數(shù)據(jù), 交給上層的被管理對(duì)象(context)
注意: 實(shí)際上這個(gè)類(lèi)才是真正意義上與數(shù)據(jù)庫(kù)(.SQLite)交互的類(lèi), 主要根據(jù)NSManagerObjectModel執(zhí)行表結(jié)構(gòu)的建立, 通過(guò)NSManagerObjectContext的命令執(zhí)行行數(shù)據(jù)交互
(4)NSManagerObject(被管理的數(shù)據(jù)記錄)
(5)NSFetchRequest(獲取數(shù)據(jù)的請(qǐng)求)
(6)NSEntityDescription(實(shí)體結(jié)構(gòu))
(7)后綴為.xcdatamodeld的包
四.依賴(lài)關(guān)系
五.CoreData數(shù)據(jù)庫(kù)的簡(jiǎn)單操作
第一步 : 在新建工程的時(shí)候添加CoreData框架
勾選Use Core Data, 這樣我們新建的工程里面就會(huì)自動(dòng)生成CoreData相關(guān)類(lèi)和方法了!
第二步: 添加實(shí)體和屬性
第三步: 創(chuàng)建實(shí)體管理類(lèi):勾選需要被管理的實(shí)體類(lèi)