天天看點

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

CoreData 是 iOS SDK 裡的一個很強大的架構,允許程式員以面向對象的方式儲存和管理資料。使用 CoreData 架構,程式員可以很輕松有效地通過面向對象的接口管理資料。CoreData 架構提供了 對象 - 關系映射 (ORM) 的功能,即能夠将 OC 對象轉化成資料,儲存在 SQLite3 資料庫檔案中,也能夠将儲存在資料庫中的資料還原成 OC 對象,在資料操作過程中,無需編寫任何 SQL 語句。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

模型檔案及實體(Entity)。要使用 CodeData,首先需要定義模型檔案,描述應用程式中的所有實體(Entities),所謂實體是跟資料庫進行映射的對象。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

NSManagedObject:對應資料庫中的一條記錄。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

CoreData 主要對象關系示意圖類似于資料庫的句柄,handle,用來操縱資料庫 持久化存儲排程者,是資料庫與對象之間的,在開發中。隻會用到一次,如果不了解,直接粘代碼。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

CoreData 主要對象

NSManagedObjectContext:負責應用和資料庫之間的互動 (CRUD)。

NSPersistentStoreCoordinator:添加持久化存儲庫(如 SQLite 資料庫), 是實體資料存儲的實體檔案和程式之間的聯系的橋梁 ,負責管理不同對象上下文。

NSManagedObjectModel:被管理的對象模型。

NSEntityDescription:實體描述。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

配置

1、在工程中建立 Data Model 資料模型檔案。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

2、在 Data Model 模型檔案中添加 Entity 實體,修改實體名稱,并在實體中添加模型屬性。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

3、在模型檔案右側屬性清單的 Code Generation 中設定生成 NSManagedObject subclass 子類的使用語言。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

4、在模型檔案右側屬性清單的 Class => Codegen 中設定 Manual/None。如果不修改此項程式編譯時會報 Linker command failed with exit code 1 (use -v to see invocation) 錯誤。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

5、基于 Data Model 資料庫檔案中的 Entity 建立 NSManagedObject subclass 類。Xcode8 從系統菜單的 Editor 建立,建立後檔案中多出來 4 個檔案。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

6、在需要使用 CoreData 的檔案中。

搭建 CoreData 環境

插入資料

删除資料

修改資料

查詢資料

CoreData 是 iOS 開發中經常使用的資料持久化的技術。但其操作過程稍微繁瑣,即使你隻是實作簡單的存取,不涉及請求優化,也要進行許多配置工作,代碼量在動辄幾十行,對新手來說也需要較大時間成本。

簡化 Core Data 相關代碼

允許清晰,簡單,單行擷取

當需要優化請求的時候,仍然允許修改 NSFetchRequest

如果你在使用 MagicalRecord 方法的時候不想帶 <code>MR_</code> 字首,直接用 findAll 代替 <code>MR_findAll</code>,就在引入頭檔案 CoreData+MagicalRecord.h 之前增加 <code>#define MR_SHORTHAND</code> 即可。

建立 Model。建立一個 Model.xcdatamodeld ,添加一個 Person Entity,添加 age firstname lastname 三個屬性。最後使用 Editor =&gt; Create NSManagedObject Subclass ORM 生成 Person 類。

iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用
iOS - CoreData 資料庫存儲1、CoreData 資料庫2、CoreData 的使用3、MagicalRecord 的使用

在使用的檔案中引入頭檔案

初始化