【发布时间】:2014-09-27 19:01:17
【问题描述】:
我有两个模型:
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
公司似乎在抱怨用户对象无效。但是,如果我不设置关系并分别对 User 和 Company 运行 validateForInsert,那么它们会成功通过。
我也尝试过设置双方的关系,但无济于事。我已将两者的删除规则都设置为“无操作”。
我的数据模型设置为公司是用户的可选关系,反之亦然。不知道为什么这没有通过......
【问题讨论】:
-
您是否已将公司添加到用户 companySet 中?
-
@NikitaTook 我没有 - 你也不应该这样做。
标签: ios objective-c xctest