核心数据入门
Core Data 是 Apple 各种 OS SDK 中的一个框架,包括但不限于 iOS 和 OS X.它有两个主要角色:模型层和持久层。模型层用于管理模型对象和持久化数据。你只需在面向对象的界面中存储和管理数据即可。主要功能包括过滤,查询,排序,持久化数据以及在数据之间创建关系。Core Data 项目感兴趣的其他主题是 NSPredicate,线程等。
Core Data 的示例应用程序可以是本地库的目录应用程序。在目录应用程序中,图书管理员可以添加或删除书籍。他们还可以按流派过滤书籍,按出版日期排序书籍,或搜索特定作者的作品。实体 Book
将具有各种属性,例如标题,作者,发布日期,isbn,电话号码等。包括上述示例的核心数据还可以存储从服务器收集的数据。
该框架的主要组成部分包括:
- 数据模型(实体,属性和关系)
- 核心数据堆栈(NSPersistentStoreCoordinator, NSManagedObjectModel, NSManagedObjectContext)
- NSFetchRequest
- NSFetchedResultsController
资料来源:
CoreData 和并发
重要的是要记住 CoreData 不是线程安全的,这意味着如果有必要使用例如后台线程来处理 ManagedObjects,那么需要考虑新的事情,比如 PrivateQueue- / MainQueue -ManagedObjectContexts 。
来自 Apples 纪录片: Core Data 希望在单个线程上运行。你永远不应该在线程之间共享托管对象上下文。这是一个你不应该打破的硬规则。