iOS Core Data - 用于将关系从非可选更改为可选的轻量级迁移

Posted

技术标签:

【中文标题】iOS Core Data - 用于将关系从非可选更改为可选的轻量级迁移【英文标题】:iOS Core Data - Lightweight migration for changing relationship from non-optional to optional 【发布时间】:2016-09-02 09:07:56 【问题描述】:

Core Data lightweight migration 周围的文档没有提到是否将关系从非可选标记为可选将包含在轻量级迁移中。

它是由轻量级迁移处理的,还是我必须为其编写自定义迁移?对此的任何帮助表示赞赏。

【问题讨论】:

看起来这种改变是可以的,但唯一确定的方法是尝试一下:确保你有你的代码的备份。运行现有代码并向您的应用程序添加一些数据。现在更改 Core Data 中的关系并在同一设备上再次运行应用程序。如果它在访问您的数据时没有崩溃,那么它可以工作。 还要确保在更改关系之前对模型进行版本化。轻量级迁移始终需要这样做。 已经尝试过了,它可以工作,但是我在市场上的一个应用程序中遇到了问题,我在轻量级迁移方面面临失败。我无法在这个问题上归零,这就是我在各个方面进行推测的原因。 【参考方案1】:

实际上,该页面涵盖了这种情况。可以推断的更改列表中包括:

非可选属性变为可选

因此,如果您尝试仅使用此更改进行轻量级迁移,它应该可以工作。

【讨论】:

我对属性和关系的术语感到困惑。我认为当我们说属性时,术语是严格的,它不应该意味着关系。 你能多解释一下吗? @jarora 你问它是否可行;我解释说它确实有效。你需要更多的光来阐明哪一部分? 感谢您的时间和耐心,我只想提出与文档相关的错误。

以上是关于iOS Core Data - 用于将关系从非可选更改为可选的轻量级迁移的主要内容,如果未能解决你的问题,请参考以下文章

iOS Core Data 不执行轻量级迁移

如何自动创建一个实体,它与我正在创建的实体具有一对一的非可选关系?

Core Data 自动迁移不会在我的新模型中创建新实体

iOS Core Data iCloud 同步 - 可选

iOS Core Data Predicate 用于根据相关数据进行过滤

flatMap API 合约如何将可选输入转换为非可选结果?