使用自定义 NSEntityMigrationPolicy 进行核心数据迁移 - 效率?

Posted

技术标签:

【中文标题】使用自定义 NSEntityMigrationPolicy 进行核心数据迁移 - 效率?【英文标题】:Core data migration with custom NSEntityMigrationPolicy - efficiency? 【发布时间】:2011-04-28 09:46:51 【问题描述】:

我的 iPhone 应用程序的核心数据模型正在发生变化,我的一个对象有一个自定义映射模型和一个 NSEntityMigrationPolicy。但是,我担心我的一些用户的核心数据库中会有数千个对象,是否有任何最佳实践可以使迁移尽可能高效,或者向用户传达他们加载新更新时发生的情况哪个会尝试迁移他们的数据?

【问题讨论】:

【参考方案1】:

您需要警告用户该应用需要更新数据存储,并且您可能应该提供一个“工作”对话框,这样应用看起来就不会挂起。

但是,迁移非常有效,因为它实际上只是更改了商店的映射。它不必实际实例化所有现有的托管对象,它只需更改存储中的字段名称。在极少数情况下,这本身可能会变得复杂,但大多数时候几乎不会被注意到。

【讨论】:

在加载初始屏幕时警告用户的最佳方式是什么? 您实际上无法更改 Apple API 调用初始图像的真实“启动画面”。这是在应用程序自定义代码运行之前由系统自动加载的。相反,您只需要在第一个操作视图上弹出一个警报视图,通知用户正在进行数据更新。 如果您在启动画面显示时尝试迁移数据,请当心!您的应用只有几秒钟的时间从application:didFinishLaunchingWithOptions: 返回,然后您的应用将被操作系统终止。

以上是关于使用自定义 NSEntityMigrationPolicy 进行核心数据迁移 - 效率?的主要内容,如果未能解决你的问题,请参考以下文章

scratch中自定义模块的数字或文本有啥用

wpf自定义控件中使用自定义事件

使用自定义动画删除自定义 UIStoryboardSegue

Android 自定义View

[WPF自定义控件库]使用WindowChrome自定义RibbonWindow

如何使用自定义表单和自定义流程