模型版本升级

Core Data 模型版本升级和数据迁移(四)迁移过程

拈花ヽ惹草 提交于 2019-12-03 16:35:49
文章来源: developer.apple.com 数据迁移过程中,Core Data 创建了两个栈(stacks),一个用于源存储(source store),一个用于目标存储(destination store)。随后,Core Data 从源栈中获取对象,对应的将其插入目标栈。注意:在新栈中,诸多对象是 Core Data 重新创建(re-create )的。 概述 在ios中物理存储是绑定到对应的模型上的,因此,当模型与存储不对应时,就需要迁移。迁移过程有两个时间点供我们采取行动(There are two areas where you get default functionality and hooks for customizing the default behavior): 当检测版本变化(version skew)和初始化迁移过程时; 当执行迁移过程时; 成功执行迁移过程需要两个栈,都由 Core Data 自动为我们创建,一个是面向源存储的栈,一个是面向目标存储的栈,整个栈对栈的拷贝过程分3步完成。 迁移过程必要条件 持久存储的迁移由 NSMigrationManager 的实例完成,为完成迁移,迁移管理器(migration manager)需要涉及很多东西: 目标存储的管理对象模型(The managed object model for the