与 nsmanagementObject 的奇怪关系

发布于 2024-11-04 18:46:13 字数 1066 浏览 4 评论 0原文

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

该实体与另一个实体(我们称为 BusinessEntity)存在“对多”关系。

当我填充商店时,我创建 BusinessEntity 托管对象。 在我将此 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之间的关系。

我在entity2和businessEntity之间没有关系。

真的很奇怪

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

感谢您的帮助

i have multiple NSmanagedObject from the same entity ( we call PersonEntity).

This entity have a relationship "to-many" for another entity (we call BusinessEntity).

when i populate my store, i create the BusinessEntity managedObject.
After i add this BusinessEntity managedObject to my first PersonEntity managedObject.

[(Person *)entity1 addBusinessObject:businessEntity];
[(Person *)entity2 addBusinessObject:businessEntity];

the addBusinessObject function ( generate by 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];
}

this work but only just after the populate.

If i save the store, only the relationShip between the entity1 and the businessEntity exist.

I have no relationShip between entity2 and businessEntity.

Really strange

PS: my two Entity are subclass of NSManagedObject for use with undefined property, and transient property.

Thanks for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱娆 2024-11-11 18:46:13

关于苹果文档核心数据编程指南

我已经阅读了这篇重要的文字:

重要提示:您必须定义
两者之间都是多对多关系
方向——也就是说,您必须指定
两种关系,每一种都是
另一个的倒数。你不能只是
定义一对多关系
方向并尝试将其用作
多对多。如果你这样做,你就会结束
符合参照完整性
问题。

现在开始工作了

On the apple documentation Core Data Programming Guide

i have read this important text :

Important: You must define
many-to-many relationships in both
directions—that is, you must specify
two relationships, each being the
inverse of the other. You can’t just
define a to-many relationship in one
direction and try to use it as a
many-to-many. If you do, you will end
up with referential integrity
problems.

Now it's work

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文