【问题标题】:Core Data Save Error: Non-Optional Properties disappear during Save attempt核心数据保存错误:保存尝试期间非可选属性消失
【发布时间】:2016-04-17 18:00:15
【问题描述】:

上下文:我设置了 CoreData 对象的多个非可选属性,并在尝试保存后收到错误。

具体来说,“fbid”和“owner”在尝试保存之前已正确设置。尝试保存后,它们被指示为 nil,如下面的 print() 和错误摘录所示。 我在这里做错了什么?这个问题的原因可能是什么?

在尝试保存之前打印核心数据对象的语句

<HittupMe.Hittup: 0x1740db6d0> (entity: Hittup; id: 0x174a2dca0 <x-coredata:///Hittup/tE7827F40-D3F7-4CA3-AB73-133466C994E62> ; data: {
fbid = 5692f3bfda68df8e3f831177;
...
owner = "0xd000000000040000 <x-coredata://D4C715E1-EEBF-4E2C-96B6-8A8C692F852C/User/p1>";
...
usersJoined = "<relationship fault: 0x174a36c00 'usersJoined'>";
})

错误:在 managedContext.save() 之后

[NSValidationErrorKey: owner, NSLocalizedDescription: The operation couldn’t be completed. (Cocoa error 1570.), NSValidationErrorObject: <HittupMe.Hittup: 0x1740db970> (entity: Hittup; id: 0xd000000000040002 <x-coredata://D4C715E1-EEBF-4E2C-96B6-8A8C692F852C/Hittup/p1> ; data: {
fbid = nil;
...
owner = nil;
...
usersJoined = "<relationship fault: 0x174a36c00 'usersJoined'>";
})]

【问题讨论】:

  • 你能在测试用例中重现这个吗?如果不是,那么您的代码中有问题,如果是,请发布测试用例,以便其他人可以探索它。如果没有一些代码可以查看,那么有人就不太可能知道发生了什么。

标签: ios swift core-data


【解决方案1】:

问题是 “一对一” 关系设置在需要 “一对多” 关系的架构中

例如:在我的代码中,我保存了多个与“用户”对象的同一个实例有关系的对象。由于我的架构设置为一对一,因此一次只能将一个对象设置给用户,从而导致某些对象的所有者为零。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多