core-data核心数据入门


备注

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

创建项目

要采取的第一个操作是创建一个新项目File> New> Project。此处选择了单视图应用程序,但您可以选择最适合您项目的应用程序。

初始设置

设置核心数据的下一步是将信息添加到项目中。下面照片中的重要部分是选择“使用核心数据”

添加项目信息

创建你的第一个模型

  • 选择.xcdatamodeld 文件。你会发现你没有实体。你必须自己创建一个。在Xcode的底部,你会看到一个按钮,上面写着“添加实体”,点击它,你将有一个新的实体让你在项目上工作。

数据模型

  • 在这一步中,有几点需要提及。首先,您在此处更改了实体名称,实体名称为Person 。在属性部分下,您可以将属性添加到模型中。此按钮是位于该部分底部的加号。您可以添加与您的应用相关的任何属性。例如,如果您正在制作一个联系簿应用程序,则不需要使Person的模型包含类型为BooleanArms 属性。你应该保持它与你的应用程序相关。例如,添加类型为Integer的telephone 属性,或者如果您喜欢String。您有多种类型可供选择,从BooleansDates 等等。

创建模型

  • 对模型满意后,可以创建NSManagedObject子类。

创建NSManagedObjectSubclass

选择数据模型

选择要管理的实体

  • 在这里我们可以看到两件重要的事情首先,该Person(与您的实体名称相同)是NSManagedObject的子类。这对您的核心数据堆栈非常重要。其次,您创建了两个文件,一个Person.swift 类和一个名为Person+CoreDataProperites.swiftPerson 扩展。

  • 所有添加都应该在Person.swift 中完成,因为如果您更改模型并重新运行类生成器,它将覆盖Person+CoreDataProperties.swift 所有内容。

Person.swift

人+ CoreDataProperites.swift