回答
如果car.mySet
是你的设置,你可以尝试,因为,
NSMutableSet *mutableSet = [car.mySet mutableCopy];
[mutableSet removeObject:carpartsObject];
car.mySet = [mutableSet copy];
我假设Car
是NSManagedObject
一个子类,因为你有核心数据的标签。
核心数据符合KVO。
Reference here
动态生成的存取方法
默认情况下,核心数据动态创建高效的公共和原始的获取和管理对象类的模型属性(属性和关系)设置访问方法。这包括键值编码可变代理方法,如add<Key>Object:
,并删除:,如在mutableSetValueForKey的文档中详细描述的: - 管理对象对于其所有多对多关系都是有效的可变代理。
其他Reference here有关志愿
命名约定为了一个mutable unordered to-many relationship
您必须实现以下方法键 - 值编码投诉:
-add<Key>Object: or -add<Key>:
。至少必须实施其中一种方法。这些类似于NSMutableSet方法addObject :.
-remove<Key>Object: or -remove<Key>:
。至少必须实施其中一种方法。这些类似于NSMutableSet方法removeObject :.
-intersect<Key>:
。可选的。如果基准测试表明绩效是一个问题,则实施。它执行NSSet方法intersectSet:的等效操作。
这是更好的响应,然后,在一行中: [car removeCarpartsObject:carpartsObject]; – Esteve
如果你想确保一对多对象也从对象存储删除(默认动作是废掉父实体),可以覆盖的Car
自动生成的方法之一:
- (void)removeCarpartsObject:(Carpart *)value
{
NSMutableSet *set = [self mutableOrderedSetValueForKey:NSStringFromSelector(@selector(carparts))];
[set removeObject:value];
[self.managedObjectContext deleteObject:value];
}
从核心数据删除NSSet中的对象的另一种替代方法是使用下面。我自己尝试了这种方法,它也适用。
- (void)removeCarpartsObject:(Carpart *)value
{
NSError *error;
NSInteger index = [car.mySet.allObjects indexOfObject:carpartsObject];
[self.managedObjectContext deleteObject:car.mySet.allObjects[index]];
[self.managedObjectContext save:&error];
}
- 1. 检查并删除NSSet中的对象
- 2. 是否可以从上下文中删除托管对象,而不是从对多关系中删除它NSSet
- 3. NSSet问题(删除对象和迭代)
- 4. Django从ManyToMany关系中删除对象
- 5. 删除关系中的孤立对象
- 6. 猫鼬Express.js删除对象与关系
- 7. 如何在Django Rest Framework中从ManyToMany关系中删除对象
- 8. 在Play中删除@OneToMany关系中的JPA对象!框架
- 9. NSManagedObject - NSSet被删除?
- 10. 在EF中删除多对多关系中的选定关系?
- 11. 核心数据删除实体对象时也删除所有关系对象
- 12. 如何在删除关联对象后同步刷新关系?
- 13. 如何删除多对多而不删除关系中的所有对象?
- 14. 在核心数据中删除与级联的关系对象
- 15. 在ManyToMany关系中删除对象后保留数据
- 16. 如何在双向关系中删除一侧的对象?
- 17. 为什么如果相关对象从数据库中删除,Redis会删除对象中的关系?
- 18. 如何删除django关系中的对象(保留所有相关对象)?
- 19. SQLAlchemy删除关联对象
- 20. 获取实体关系NSSet
- 21. Django的 - 删除对象,而不删除其相关对象
- 22. 休眠删除对象而不删除相关对象
- 23. 删除关系?
- 24. 从活动记录关系中删除对象而不删除它
- 25. Swift 3核心数据关系不会删除相关对象
- 26. 使用级联删除核心数据中的对象关系
- 27. 从数据库中删除对象时,它有依赖关系
- 28. 使用级联删除领域中的对象关系
- 29. 从具有休眠ManyToMany关系的集合中删除对象
- 30. 如何删除Parse中对象的关系?
完美!工作,谢谢! –
很高兴帮助。谢谢。 :) – iDev