gpt4 book ai didi

ios - 当我设置两个有效对象之间的关系时,validateForInsert 失败

转载 作者:可可西里 更新时间:2023-11-01 05:53:26 25 4
gpt4 key购买 nike

我有两个模型:

User
Company

用户有两个属性:

firstName
lastName

公司有一个属性:

name

用户和公司之间是一对多的(即一个用户可以有多个公司)。

我可以在我的应用程序中很好地创建两个对象之间的这种关系。但是,当我设置如下相同的关系时,我的单元测试失败了:

User *user = [UserFactory regularUserInContext:self.context];
Company *comp = [CompanyFactory regularCompanyInContext:self.context];
comp.owner = user;
NSError *error;
XCTAssertTrue([comp validateForInsert:&error], @"Company should save when all properties are set correctly");

有问题的工厂方法只是设置用户和公司的基本属性——我可以确认这些设置正确。但是,由于以下错误,验证步骤失败:

Dangling reference to an invalid object

公司似乎在提示用户对象无效。但是,如果我设置关系并分别对用户和公司运行validateForInsert,那么它们就会成功通过。

我也尝试过设置双方的关系,但无济于事。我已将两者的删除规则设置为“无操作”。

我的数据模型是这样设置的,公司是用户的可选关系,反之亦然。不知道为什么这没有通过...

最佳答案

好的,看来这里的问题与使用不同的上下文有关。在此之前,我有两个对象的工厂类,这些对象在上下文中创建了所述对象,但是非常愚蠢的是,我忘记了初始化有问题的上下文。由于这是一个测试,我决定使用 MR_createEntity而不是 MR_createEntityInContext...方法,这就把事情搞清楚了。

有两点:

  1. validateForInsert 没有通过,这仍然很奇怪,因为两个对象都没有附加到上下文(或者可能 - 更有可能 - 我不完全理解这里到底发生了什么)。

  2. Xcode 错误报告一如既往的好 </sarcasm>

关于ios - 当我设置两个有效对象之间的关系时,validateForInsert 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26078102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com