歸納筆記016:Core Data

Core Data的API

Core Data應用中的核心API有如下幾個:

(1)   託管對象模型。

(2)   持久化存儲協調器。

(3)   託管對象上下文。

(4)   實體描述。

(5)   抓取請求。


持久化操作

掌握上面的API之後,持久化操作如下:

(1)    創建NSManagedObjectModel對象來加載管理應用的託管對象模型。

(2)    以NSManagedObjectModel對象爲基礎,根據實際需要創建NSPersistentStoreCoordinator對象,該對象確定Core Data底層數據的存儲形式。

(3)    以NSManagedObjectModel對象爲基礎,創建NSManagedObjectContext,該對象時Core Data進行持久化訪問的核心對象。

(4)    對於普通的增刪改查操作,需要分別先新建實體、刪除實體、修改實體,然後調用NSManagedObjectContext對象的save:方法將這些修改保存到底層設備。

(5)    如果要執行查詢,則需要先創建愛你NSFetchRequest對象,在調用NSManagedObjectContext的executeFetchRequest:error:方法執行查詢,該方法返回所有匹配條件的實體組成的NSArray。


初始化Core Data項目

iOS允許在創建iOS項目時勾選“Use Core Data”複選框,通過這種方式創建iOS項目已經完成了所有CoreData必須資源的初始化,但此處並不打算使用這種方式來初始化,我們將手動初始化來真正理解Core Data。

新建一個EmptyApplication項目,新建項目將只包含一個應用程序委託類。接下來逐步把該項目改造成Core Data項目:

(1)   爲該項目添加CoreData.framework框架。

(2)   爲該項目添加一個實體模型文件。

(3)   初始化Core Data應用必須的核心API對象。


設計實體模型

對象模型可添加3種對象:

(1)              實體:這是實體模型最核心的對象,每個實體都必須是NSManagedObject類或其子類。

(2)              抓取請求:NSFetchRequest對象,Xcode允許在圖形界面上設計抓取請求對象。

(3)              配置:一般無須自行添加配置對象。當開發者添加實體後,系統會自動添加默認的配置。

每個實體也可以添加如下3種屬性:

(1)    屬性:該屬性相當於實體對象的實例變量,用於記錄該實體的狀態。

(2)    關聯關係:該屬性定義實體之間的1:1、1:N、N:N關聯關係。

(3)    抓取屬性:這是關聯關係的可選方法,抓取屬性允許在獲取管理實體時執行某個過濾條件。


使用Core Data實現數據的增、刪、改、查

獲取託管對象上下文之後,接下來即可通過該對象執行增、刪、改、查操作。

(1)    添加實體

1)           調用NSEntityDescription的insertNewObjectForEntityForName:inManag edObjectContext靜態方法添加新實體。

2)           爲新實體設置屬性。

3)           調用NSManagedObjectContext對象的save:方法執行保存。

(2)    刪除實體

1)           獲取需要刪除的實體。

2)           調用NSManagedObjectContest對象的deleteObject:方法刪除實體。

3)           調用NSManagedObjectContext對象的save:方法執行保存。

(3)    修改實體

1)           獲取要修改的實體。

2)           修改實體的屬性。

3)           調用NSManagedObjectContext對象的save:方法執行保存。

(4)    查詢實體

1)           創建NSFetchRequest對象。

2)           通過NSEntityDescription對象設置NSFetchRequest對象將要抓取的實體。

3)           如要需要對抓取結果進行篩選,則需要通過NSPredicate對象設置篩選條件。如果需要對結果進行排序,還需要爲NSFetchRequest添加多個NSSortDescriptor對象。

4)           調用NSManagedObjcetContext對象的excuteFetchRequest:error:方法執行查詢,該查詢方法將會返回所有符合條件的實體組成的NSArray集合。


管理實體的關聯關係

    Core Data除了可用於管理單獨的實體之外,還可用於管理實體與實體之間的關聯關係,這些關聯關係同樣可通過.xcdatamodeld文件進行設計,接下來CoreData應用完全可以利用實體之間的關聯關係執行刪除、查找等操作。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章