Core data 与nsmanagedObject的奇怪关系

Core data 与nsmanagedObject的奇怪关系,core-data,relationship,nsmanagedobject,Core Data,Relationship,Nsmanagedobject,我有多个来自同一实体的NSmanagedObject(我们称之为PersonEntity) 这个实体与另一个实体(我们称之为BusinessEntity)的“多个”有关系 当我填充我的商店时,我创建BusinessEntity managedObject。 在我将这个BusinessEntity managedObject添加到我的第一个PersonEntity managedObject之后 [(Person *)entity1 addBusinessObject:businessEntity

我有多个来自同一实体的NSmanagedObject(我们称之为PersonEntity)

这个实体与另一个实体(我们称之为BusinessEntity)的“多个”有关系

当我填充我的商店时,我创建BusinessEntity managedObject。 在我将这个BusinessEntity managedObject添加到我的第一个PersonEntity managedObject之后

[(Person *)entity1 addBusinessObject:businessEntity];
[(Person *)entity2 addBusinessObject:businessEntity];
addBusinessObject函数(通过XCode生成):

这是一项工作,但仅在完成之后

如果保存存储,则只有entity1和businessEntity之间的关系存在

我在entity2和businessEntity之间没有任何关系

真奇怪

PS:我的两个实体是NSManagedObject的子类,用于未定义属性和瞬态属性


感谢您对apple文档的帮助

我读过这篇重要的文章:

重要提示:您必须定义 这两种情况下的多对多关系 方向也就是说,您必须指定 两种关系,每种关系都是 与另一个相反。你不能只是 在一个数据库中定义一对多关系 方向,并尝试将其用作 多对多。如果你这样做了,你就会结束 具有引用完整性 问题


现在是工作了

哪个实体的哪个属性是暂时的?
个人性
业务
实体之间的关系是相互的吗?我找到了一个解决方案。a已经添加了一个反向关系,现在可以了。反向关系是默认的,并且是假定的。事实上,如果没有互惠关系,Xcode将向您发出警告。是的,但我在启动此项目时已将MOMC_NO_reverse_RELATIONSHIP_警告添加为yes。这真的很愚蠢。嗯,这一定是Xcode4的“改进”之一。
- (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];
}