【问题标题】:CoreData: Add same object multiple times in the To-Many RelationshipCoreData:在多对多关系中多次添加相同的对象
【发布时间】:2013-07-22 11:09:42
【问题描述】:

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

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

这就是我的目标:

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

Other cake
  - Apple
  - Sugar
  - Flour
  - Flour

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

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

Recipe ID
Ingredient ID
Count

或者是否有可能与 To-Many 关系?

【问题讨论】:

  • 如果您的对象实际上是食谱,您很可能需要一个中间实体,它具有数量属性和与成分的关系。如果您需要 500 克面粉,那么在面粉中添加 500 个关系可能不是一个好主意;-)
  • @MatthiasBauch 确实如此,你将如何添加半个苹果? :-)
  • 感谢您的回答。我用两个关系和一个计数字段做了中间实体。

标签: ios core-data


【解决方案1】:

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

创建一个类似...的关系

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

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

回答你的问题。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    相关资源
    最近更新 更多