核心数据入门

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 希望在单个线程上运行。你永远不应该在线程之间共享托管对象上下文。这是一个你不应该打破的硬规则。