核心数据刷新第1部分–快速杀死–中

核心数据刷新器第1部分

什么是核心数据?

核心数据是一个对象图管理框架,用于管理潜在的大型对象实例图以持久化数据。 它以持久状态存储数据,因此当应用程序重新启动或重新启动设备时,数据就可以在那里访问。 核心数据不是对象关系映射器(ORM)。

Core Data和SQLLite有什么区别?

SQLLite是一个对磁盘上存储的对象进行操作的数据库,而核心数据对内存中存储的对象进行操作。 为了实现其图形管理,Core Data恰好使用SQLLite作为磁盘存储。 可以使用其他关系数据库来实现。

为了实际使用Core Data,首先让我们创建一个托管对象模型,该模型描述Core Data表示磁盘上数据的方式。 数据模型是一种数据库架构,因为Core Data使用SQLite数据库作为持久存储。

此外,Core Data经常使用术语“管理”。 例如,此处以类的名称使用NSManagedObjectContext,managed,它是指Core Data对Core Data对象生命周期的管理。

· 实体 -核心数据的类定义。经典示例是EmployeeCompany 。 在关系数据库中,实体对应于一个表。

· 属性是附加到特定实体的一条信息。 本质上是实体的属性之一。 在数据库中,属性对应于表中的特定字段。

关系-多个实体之间的链接。

实体是类定义,管理对象是该类的实例。

因此, NSManagedObject是该实体的实例,单个对象存储在Core Data中。 NSManagedObject可以是数据模型中的任何实体,采用任何已定义的属性和关系。 此外,为了使NSManagedObject访问您在数据模型中定义的特定属性,您必须使用键值编码(KVC)。

KVC注意事项

KVC是Foundation中的一种机制,用于使用字符串间接访问对象的属性。 在这种情况下,KVC使NSMangedObject在运行时的行为或多或少像字典。 键值编码可用于从NSObject继承的所有类,包括NSManagedObject 。 您不能在不源自NSObject的Swift对象上使用KVC访问属性。

最后,为了将数据从持久性存储中获取到托管对象上下文中,您必须获取它。