CoreData:在多对多关系中多次添加同一对象
问题描述:
有多种方式可以多次添加同一对象,即默认的CoreData一对多关系吗?CoreData:在多对多关系中多次添加同一对象
我有一个表食谱在里面,和一个表成分。
这就是我的目标在:
Apple cake
- Apple
- Apple
- Apple
- Sugar
- Flour
Other cake
- Apple
- Sugar
- Flour
- Flour
默认情况下,addIngredientsObject
- 方法只会增加成分如果没有在配方中存在。
我一定要创建自己的表是这样的:
Recipe ID
Ingredient ID
Count
或是否有可能与一对多的关系?
答
我愿意听这个Matthias。
建立关系一样......
Recipe <->> IngredientMeasure <<-> Ingredient.
即配方可以有很多成分的措施。成分测量只有一种成分。
但要回答你的问题。
在“一对多”关系中,关系映射到NSSet
。 NSSet
是一个独特的对象集合。
因此,如果您创建一个实体,称为apple
,做类似...
[myRecipe addIngredientObject:apple];
[myRecipe addIngredientObject:apple];
[myRecipe addIngredientObject:apple];
[myRecipe addIngredientObject:apple];
你最终仍要只有一个苹果,因为它是将同一项目的NSSet中,将停止重复。
如果你的对象实际上是食谱,你最有可能需要一个中间实体,它有一个数量属性和与成分的关系。如果你需要500克面粉,那么添加500个面粉可能不是一个好主意;-) –
[CoreData多对多关系]的可能重复(http://stackoverflow.com/questions/14973660/coredata-many-一对多关系) –
@MatthiasBauch确实,你会如何添加一半苹果? :-) – Fogmeister