如何使用CoreData中的多對多關係進行操作? 例如:CoreData多對多關係
我有2個實體 - 食譜&成份
CoreData鏈接他們喜歡食譜< < - >>成分。 現在我需要爲配方中的每種配料添加屬性「計數」。我該怎麼做?
謝謝
如何使用CoreData中的多對多關係進行操作? 例如:CoreData多對多關係
我有2個實體 - 食譜&成份
CoreData鏈接他們喜歡食譜< < - >>成分。 現在我需要爲配方中的每種配料添加屬性「計數」。我該怎麼做?
謝謝
核心數據爲您處理對象圖一致性維護。因此,如果您使用SQLite存儲,Core Data會自動爲您創建用於多對多關係的中間連接表。在你的情況下,你應該明確地創建一箇中間(「加入」)實體。中間實體的一個優點是您也可以使用它來添加更多關於 關係的信息,例如「IngredientInfo」實體可能包含「計數」列。所以你模型應該看起來像:食譜< - >> IngredientInfo < < - >成分。
如果您發現不清楚的地方,我會更新答案。
更新:訪問成分和數量
for (IngredientInfo* ingredientInfo in recipe.ingredientInfos) {
Ingredient* ingredient = ingredientInfo.ingredient;
NSNumber* count = ingredientInfo.count;
}
還是要快速訪問某些配方中的所有成分,使用KVC
NSSet* ingredients = [recipe valueForKeyPath:@"ingredientInfo.ingredient"];
那你的意思是「我需要添加屬性‘計數’對於每種成分'?這是否意味着您想要添加新的NSAttributeDescription,或只是用新值更新此屬性? – 2013-02-20 06:58:03
@MarkKryzhanouski 食譜有3列:姓名,thumbImage,配料成分 已經2列:名稱,配方 Recipe.ingredients <<-->> Ingredients.recipe 現在我需要添加列「伯爵」在一些成分(計一些食譜) – Romowski 2013-02-20 08:25:40