2

有没有办法在默认的 CoreData 一对多关系中多次添加相同的对象?

我有一张桌子,里面有食谱,还有一张桌子,里面有配料

这就是我的目标:

Apple cake
  - Apple
  - Apple
  - Apple
  - Sugar
  - Flour

Other cake
  - Apple
  - Sugar
  - Flour
  - Flour

默认情况下,addIngredientsObject- 方法仅在配方中不存在该成分时添加该成分。

我是否必须使用以下内容创建自己的表:

Recipe ID
Ingredient ID
Count

还是有可能与多对多关系?

4

1 回答 1

2

我会用这个听马蒂亚斯的。

建立一种关系,例如...

Recipe <->> IngredientMeasure <<-> Ingredient.

即配方可以有许多成分措施。成分测量只有一种成分。

不过要回答你的问题。

在“对多”关系中,该关系映射到NSSet. NSSet是一个独特的对象集合。

因此,如果您创建一个名为的实体apple并执行类似...

[myRecipe addIngredientObject:apple];
[myRecipe addIngredientObject:apple];
[myRecipe addIngredientObject:apple];
[myRecipe addIngredientObject:apple];

你最终还是会得到一个苹果,因为它会将相同的项目添加到 NSSet 中,这将停止重复。

于 2013-07-22T12:03:21.967 回答