天天看點

Core Data

Core Data

//Core Data 是 iOS SDK 裡的一個很強大的架構,允許程式員以面向對象的方式儲存和管理資料

//Core Data 不是一個資料庫,不要用資料庫的眼光去看待 Core Data

//Core Data 不僅是一個加載、儲存資料的架構,還可以:

//實體與 SQLite 中的 Table 對應

//無需編寫任何 SQL 語句

//通過謂詞指定查詢條件

//Core Data 是一套非常成熟的架構,性能優異

//最早出現在 Mac OS X 10.4 Tiger 與 iOS 3.0 系統

//建立項目

//

//建立項目,勾選Use Core Data

//實體 (entity)是資料模型的基石

//

//一個實體表示應用程式中有意義的一部分資料

//

//可以把實體看待成 SQLite 中的一個表,或者資料模型

//

//建立實體對應的代碼檔案

//

//選擇菜單 Editor / Create NSManagedObject SubClass

//

//注意:将檔案添加到DataModel檔案夾中步驟

//

//1、右擊檔案清單—>  show in Finder —>在test檔案夾下建立一個DataModel檔案夾 —>将檔案夾拖入到項目的檔案清單中

//

//2、選擇xcddatamodeld->選擇菜單 Editor / Create NSManagedObject SubClass

//

//3、選擇存儲位置時,請注意細節

Core Data
Core Data
Core Data

//遇到坑!!!!

//

//問題描述:

//

//使用xcode8.3建立項目,使用CoreData 建立好coreData模型後,生成檔案後。報如下錯誤。提示沒有引入檔案。

//

//查閱資料&綜合調試,無法從正面解決問題。

//

//解決方案:

//

//1.使用xcode7.1建立項目,生成CoreData模型以及檔案後,再使用Xcode8.3打開項目,編譯通過。不再報錯

Core Data
Core Data

新增資料

Core Data
Core Data

//查詢資料

//

//要查詢資料需要使用查詢結果控制器-> NSFetchedResultsController

//

//執行個體化查詢結果控制器

//

//指定查詢請求,設定請求排序屬性

//

//執行查詢 performFetch

//

//查詢結果 fetchedObjects

//

//設定代理,監聽資料變化 controllerDidChangeContent:

Core Data
Core Data
Core Data

//修改

//

//擷取要修改的 實體描述

//

//設定對象屬性

//

//儲存資料

Core Data
Core Data

//删除

//擷取要删除的 實體描述

//

//讓管理上下文删除對象 —— 從記憶體删除

//

//儲存對資料的操作 —— 從資料庫中删除

Core Data