核心資料入門

Core Data 是 Apple 各種 OS SDK 中的一個框架,包括但不限於 iOS 和 OS X.它有兩個主要角色:模型層和持久層。模型層用於管理模型物件和持久化資料。你只需在物件導向的介面中儲存和管理資料即可。主要功能包括過濾,查詢,排序,持久化資料以及在資料之間建立關係。Core Data 專案感興趣的其他主題是 NSPredicate,執行緒等。

Core Data 的示例應用程式可以是本地庫的目錄應用程式。在目錄應用程式中,圖書管理員可以新增或刪除書籍。他們還可以按流派過濾書籍,按出版日期排序書籍,或搜尋特定作者的作品。實體 Book 將具有各種屬性,例如標題,作者,釋出日期,isbn,電話號碼等。包括上述示例的核心資料還可以儲存從伺服器收集的資料。

該框架的主要組成部分包括:

  • 資料模型(實體,屬性和關係)
  • 核心資料堆疊(NSPersistentStoreCoordinator, NSManagedObjectModel, NSManagedObjectContext)
  • NSFetchRequest
  • NSFetchedResultsController

資料來源:

框架文件

程式設計指南

2016 年核心資料釋出說明

CoreData 和併發

重要的是要記住 CoreData 不是執行緒安全的,這意味著如果有必要使用例如後臺執行緒來處理 ManagedObjects,那麼需要考慮新的事情,比如 PrivateQueue- / MainQueue -ManagedObjectContexts

來自 Apples 紀錄片: Core Data 希望在單個執行緒上執行。你永遠不應該線上程之間共享託管物件上下文。這是一個你不應該打破的硬規則。