核心数据基础

决定任何iOS应用程序性能的一个重要因素是其对搜索查询的响应能力。 它响应越快,性能越好。 成功的搜索结果取决于用于存储应用程序数据的数据库的效率。

您可以将Core Data视为在iOS,macOS,tvOS和watchOS应用程序中保存,跟踪,修改和过滤数据的框架,但是Core Data不是数据库。 核心数据使用SQLite作为持久存储,但框架本身不是数据库。 核心数据的功能远不止数据库,例如管理对象图,跟踪数据的变化以及更多其他事情。

  1. 核心数据可帮助您构建代表应用程序状态的应用程序模型层。 核心数据可以将模型对象的状态持久保存到磁盘。
  2. 核心数据关注对象,而不是传统的表驱动关系数据库方法。 在存储数据时,实际上是在存储对象的内容,其中对象由继承NSManagedObject类的Objective-C / Swift类表示。 一个典型的应用程序将几个对象一起使用,形成一个对象图。

核心数据和SQLite之间的区别

SQLite本身就是一个数据库,就像我们拥有MS SQL Server 。 但是CoreData是类似于ORM (对象关系模型)的框架,该框架在databaseUI之间创建一个层。 它speeds-up交互process ,因为我们不必write queries ,只需使用ORM并让ORM处理后端即可。

核心数据将对象图保存在内存中。 这意味着,只有将记录加载到内存中后,它才能对记录进行操作。 这与在数据库上执行SQL查询有很大不同。 如果要删除数千条记录,Core Data首先需要将每条记录加载到内存中。

另一个限制是核心数据的线程模型。 该框架期望在单个线程上运行。

核心数据具有3个关键对象:

  1. 托管对象上下文
  2. 托管对象模型
  3. 持久性商店协调员
  4. 永久存储(存储)

设置永久容器

使用NSPersistentContainer设置核心数据栈
在上一教程中,您了解了Core Data堆栈和涉及的类。 在本教程中,我们将学习…… cocoacasts.com

动手使用Xcode

piyush23dez / Swift4_CoreData_Demo
Swift 4中的核心数据基础。通过在 github.com 上创建一个帐户,为piyush23dez / Swift4_CoreData_Demo开发做出了贡献。

核心数据中的实体关系

piyush23dez / Swift4_CoreData_Demo_EntityRelationship
Swift 4中的核心数据实体关系。为piyush23dez / Swift4_CoreData_Demo_EntityRelationship开发做出了贡献 。github.com