天天看點

iOS7應用開發12:Core Data

Core Data:一種資料庫機制,可以用于儲存應用中需要永久儲存的資料,是一種面向對象的資料庫,在ios中應用極為廣泛。

應用方法:

(1)在xcode中建立一個visual mapping,即在建立檔案中選擇Core Data->Data Model。在Data Model檔案中添加Entity,在Entity中添加attribute并設定類型。各個entity可以通過ctrl+拖動建立relation,并在右側欄中設定relation的屬性。

(2)另一種方式:通過NSManagedObjectContext——建立UIManagedDocument,并擷取managedObjectContext屬性;需在建立工程時選擇“Use Core Data”。

UIManagedDocument:該類是UIDocument的派生類,提供了大量的資料儲存相關的方法,可友善适應iCloud的應用;可視為Core Data資料庫的簡單容器;

* 建立UIManagedDocument對象

* 如何判斷UIManagedDocument所關聯的檔案是否存在:

* 若檔案存在,打開檔案:

* 若不存在:建立檔案:

 由于打開/儲存是異步操作是以必須采用completionHandler進行結束後的操作。

* 使用儲存的檔案之前檢測狀态:self.document.documentState == UIDocumentStateNormal;

* 關閉檔案:如果沒有強引用指針指向,則會自動關閉;手動關閉使用closeWithCompletionHandler:方法;

Core Data的操作:

1、向資料庫中添加對象:

2、擷取NSManagedObject對象中的attribute:采用NSKeyValueCoding協定中的兩個方法:

其中key是data mapping中的attribute name,value是資料庫中儲存的資料。

更優方法:

建立NSManagerObject類的派生類:選中data model中的entity,在editor中選擇Create subclass;完成後将為每一個entity建立頭檔案和源檔案;

然後1中的添加操作就可以用下列語句表示:

3、在資料庫中删除記錄

#分類category

category在第8篇中已經有過簡單介紹,這裡不再過多費口舌了。

需要強調的一點是,category的函數在實作的過程中不能使用局部變量。

【好累啊……%>_<%】