Core data 核心数据迁移失败,但什么';发生什么事了?
我尝试用映射模型迁移我的核心数据模型。它似乎找到了映射模型,并在迁移过程中取得了相当大的进展,但我不确定。然而,最终它失败了,出现了一个一般性错误,我不知道到底出了什么问题Core data 核心数据迁移失败,但什么';发生什么事了?,core-data,core-data-migration,Core Data,Core Data Migration,我尝试用映射模型迁移我的核心数据模型。它似乎找到了映射模型,并在迁移过程中取得了相当大的进展,但我不确定。然而,最终它失败了,出现了一个一般性错误,我不知道到底出了什么问题 我是否遗漏了中错误的原因?如果是,原因是什么?验证失败。正如您可能已经发现的,核心数据 发现它需要迁移持久存储 找到合适的映射模型,FourToFive.cdm 开始迁移 但后来失败了。这些错误不是一般性的——它们非常具体。它们看起来都是这样的(为了可读性而包装): “Error Domain=NSCocoaErrorDom
我是否遗漏了中错误的原因?如果是,原因是什么?验证失败。正如您可能已经发现的,核心数据
FourToFive.cdm
“Error Domain=NSCocoaErrorDomain code=1570\”操作无法完成。
(Cocoa错误1570.\“UserInfo=0x10a747bb0{NSValidationErrorKey=startDate,
NSLocalizedDescription=无法完成操作。\u2019。(Cocoa错误1570。),
NSValidationErrorObject=(实体:TimeEntry;id:
0xd00000000008000e;
数据:)}“,
上面说的是
- 验证失败(因为
和NSValidationErrorKey
)NSValidationErrorObject
- 此错误出现在
实体上TimeEntry
- 该错误是由
属性引起的startDate
- 验证错误为
,即1570
(请参见文档中的相关内容)NSValidationMissingMandatoryPropertyError
TimeEntry
的新版本似乎有一个名为startDate
的非可选属性,但在五种情况下,您似乎正在迁移该属性的nil值。简单的修复方法包括使属性成为可选的或在数据模型中设置默认值。但是,您不能添加强制属性,也不能不为其赋值
还有一条关于未能删除存储的支持目录的消息,我不完全理解。迁移在该消息之后继续的事实表明,这不是您的问题,而且在任何情况下,您的错误都不是直接源于此。我将“操作无法完成”解释为代码的含义,这有点短视。非常感谢你的解释。但是startDate值不应该为nil,映射中有一个函数()来填充该字段。我将发布一个关于它的后续问题。
"Error Domain=NSCocoaErrorDomain Code=1570 \"The operation couldn\U2019t be completed.
(Cocoa error 1570.)\" UserInfo=0x10a747bb0 {NSValidationErrorKey=startDate,
NSLocalizedDescription=The operation couldn\U2019t be completed. (Cocoa error 1570.),
NSValidationErrorObject=<NSManagedObject: 0x10a7380f0> (entity: TimeEntry; id:
0xd00000000008000e <x-coredata://FB4CCC6C-6EB7-44DB-A3F2-F64E23C64827/TimeEntry/p2> ;
data: <fault>)}",