如果我在多对多关系中添加相同的 NSManagedObject 会发生啥?

Posted

技术标签:

【中文标题】如果我在多对多关系中添加相同的 NSManagedObject 会发生啥?【英文标题】:What would happen if I add the same NSManagedObject in to-many relationship few times?如果我在多对多关系中添加相同的 NSManagedObject 会发生什么? 【发布时间】:2012-05-05 07:14:17 【问题描述】:

我需要在Object A的多对多关系中插入几个NSManagedObject子类实例(Object B),但不知道这些对象 B 已存在于 对象 A 关系中。如果我插入它们会发生什么?它们会被插入两次,还是 Core Data 不会这样做?

【问题讨论】:

【参考方案1】:

因为多对多关系是作为NSSet 访问的,所以只会添加唯一的对象(这是 NSSet 的一个特性),所以您不必担心先检查它是否已经存在。

引用NSSet的文档:

NSSet 为不同对象的静态集合声明编程接口。

来自NSMutableSet 文档:

添加对象:

将给定对象添加到集合中,如果它还不是成员。

- (void)addObject:(id)object 

参数

对象

要添加到集合中的对象。

【讨论】:

以上是关于如果我在多对多关系中添加相同的 NSManagedObject 会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

在多对多关系对象django的对象中获取null

自跟踪实体 SaveChanges() 在多对多关系中添加实体时出现异常

Symfony 3.4 - 如果在多对多关系上不存在,则持续存在

实体框架在多对多关系中重复条目

Flask-msearch python ,在多对多表上添加 msearch

春季 JPA |在多对多关系中搜索