核心数据CRUD

在本教程中,您将学习如何使用Core Data框架从持久性存储中插入,获取,更新和删除数据。

您将执行的步骤:

  1. 使用集成的核心数据创建一个新项目
  2. 创建一个新实体
  3. 将数据插入持久性存储
  4. 提取实体的所有数据
  5. 使用实体的ID提取实体的托管对象
  6. 更新管理对象的数据
  7. 删除托管对象
  8. 清除实体的所有数据

如果您遇到以下任何问题,可以在此处下载完整的源代码项目。

1.使用集成的核心数据创建一个新项目

创建新项目时,请选中“ 使用核心数据”选项。 因此,Xcode将为您准备使用骨架数据的框架

Xcode创建项目之后。 Xcode为您添加了2件事:

  1. AppDelegate.swift文件中的行代码
  2. [项目名称] .xcdatamodeld文件

打开AppDelegate.swift文件,您将看到一些代码行,如下所示:

接下来,选择菜单编辑器->创建NSManagedObject子类 。 遵循Xcode的指南为您创建NSManagedObject的子类

3.将数据插入持久性存储

要将数据插入持久性存储中,首先,需要实例化一个托管对象,为其属性填充内容并保存上下文。 将以下代码段添加到您的视图控制器中:

运行该应用程序,一切都会正常进行,并出现错误。

4.提取实体的所有数据

首先,您需要阅读以下一些文章,以了解如何从持久性存储中获取数据:

NSFetchRequest
用于从持久性存储中检索数据的搜索条件的描述。

取(_:)
返回满足给定提取请求指定的条件的对象数组。

显示插入的内容。 将以下方法添加到视图控制器中:

运行该应用程序,该人的信息应显示在控制台日志中

5.使用实体的ID提取实体的托管对象

每个管理对象都有一个全局ID。 使用此全局ID,您可以获得托管对象。 全局ID的格式如下:

x-coredata://F172B5AC-C592–42AC-8110-D968E3B69FC9/Person/p8

要获取托管对象的全局ID,请使用以下代码行:

managedObject.objectID.uriRepresentation().absoluteString

从此全局ID可以使用以下代码行获取托管对象:

managedObjectContext.persistentStoreCoordinator?.managedObjectID(forURIRepresentation: URL(string: globalID)!)

将以下代码段添加到您的视图控制器中,以显示第一人称的信息:

运行该应用程序并查看控制台日志。

6.更新管理对象的数据

要更新托管对象,只需更新该托管对象的属性并保存上下文。 将以下代码段添加到您的视图控制器中:

运行应用程序并检查控制台日志

7.删除托管对象

要删除托管对象,只需调用NSManagedObjectContext类的delete(_:)方法并传递要删除的托管对象。 将以下代码段添加到您的视图控制器中:

运行应用程序并检查控制台日志

8.清除实体的所有数据

在对Core Data进行了更多测试并想要清除实体中的所有记录之后,NSBatchDeleteRequest类将为您提供帮助。 将以下方法添加到您的视图控制器中:

运行应用程序并检查控制台日志

就这样。 您可以在此处下载完整的源代码项目。