语境:
- 使用 CoreData 的应用程序
- 过去成功执行了一些轻量级迁移(达到模型版本的第 4 次迭代)
- 客户想要一个新功能
- 创建了第 5 个模型版本
- 向 TestModel 实体添加了一个糟糕的新属性,一个名为 new_one 的非可选布尔值
结果:
CoreData: error: NSUnderlyingError = "Error Domain=NSCocoaErrorDomain Code=134110 \"An error occurred during persistent store migration.\"
UserInfo={
entity= TestModel,
attribute=new_one,
reason=Validation error missing attribute values on mandatory destination attribute}";
}
解决方案:
我不完全理解为什么会发生这种情况(我太累了,急于把这个问题抛在脑后),但是“强制目标属性”的事情给我指明了将属性设置为可选的方向。无论是正确的做法还是只是普通的黑客攻击......我不知道......但它解决了我的问题,我现在可以继续下一个