我有来自同一实体的多个NSmanagedObject(我们称之为PersonEntity)。
此实体与另一个实体(我们称之为BusinessEntity)之间存在“to-many”关系。
当我填充我的商店时,我创建了BusinessEntity managedObject。 我将此BusinessEntity托管对象添加到我的第一个PersonEntity托管对象。
[(Person *)entity1 addBusinessObject:businessEntity];
[(Person *)entity2 addBusinessObject:businessEntity];
addBusinessObject函数(由XCode生成):
- (void)addBusinessObject:(NSManagedObject *)value {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1];
[self willChangeValueForKey:@"business" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[[self primitiveValueForKey:@"business"] addObject:value];
[self didChangeValueForKey:@"business" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[changedObjects release];
}
这项工作,但只是在填充之后。
如果我保存商店,则只存在entity1和businessEntity之间的relationShip。
我与entity2和businessEntity没有任何关系。
真奇怪
PS:我的两个实体是NSManagedObject的子类,用于未定义属性和瞬态属性。
感谢您的帮助
答案 0 :(得分:0)
在苹果文档Core Data Programming Guide
上我读过这个重要的文字:
重要提示:您必须定义 两者中的多对多关系 方向 - 也就是说,您必须指定 两个关系,每个都是 另一个的倒数。你不能只是 在一个中定义一个到多个关系 方向,并尝试将其用作 许多到很多。如果你这样做,你将结束 引用完整性 问题。
现在它的工作