CoreData中如何操作多对多关系?
例如:
我有 2 个实体 - 食谱和配料
CoreData 像食谱 > 成分一样链接它们。
现在我需要为配方中的每种成分添加属性“计数”。我该怎么做?
Thanks
Core Data 会为您负责对象图一致性维护。因此,如果您使用 SQLite 存储,Core Data 会自动为您创建多对多关系的中间联接表。在您的情况下,您应该显式创建一个中间(“连接”)实体。中间实体的一个优点是您还可以使用它向
关系 - 例如“IngredientInfo”实体可能包含“Count”列。所以你的模型应该看起来像:配方 > 成分信息 成分.
如果您在这里发现不清楚的地方,我会更新答案。
更新:获取成分和数量
for (IngredientInfo* ingredientInfo in recipe.ingredientInfos) {
Ingredient* ingredient = ingredientInfo.ingredient;
NSNumber* count = ingredientInfo.count;
}
或者要快速访问某些配方中的所有成分,请使用 KVC
NSSet* ingredients = [recipe valueForKeyPath:@"ingredientInfo.ingredient"];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)