CoreData向实体行添加新关系

时间:2010-11-18 15:25:18

标签: iphone objective-c ios core-data

所以这就是问题所在:

我的项目有2个实体。第一个是组织,第二个是品牌。它们与1对多关系相关联。 “一个组织可以有多个品牌”一切都在努力。 Tableview与组织和Brandtableview以及DetailView。

我想要的是向我的应用添加收藏夹功能,我将Favouritelist与我喜欢的品牌连接起来。 因此,我将实体“Favourits”添加到xcdatamodel。每个FavouriteList都有一个名称,它与“Brands”有很多关系。“Favouritelist可以有多个品牌和EBrands”可以在多个Favouritelists中。

创建一个新的List有以下代码

currentFav = (favoriten*)[NSEntityDescription insertNewObjectForEntityForName:@"favoriten" inManagedObjectContext:managedObjectContext];
[currentFav setName:@"MeineFavoriten"]; [self saveAction];

在品牌的DetailView中我有一个addToFav动作,我想通过与Favouritelist的关系更新品牌中的品牌。

实施例: “将品牌与名称”XY“链接到偏好的MeineFavouriten”

我该怎么做?

1 个答案:

答案 0 :(得分:0)

设置了多对多关系,因此您可以使用简单的setValue调用。相反,首先必须获得一个可变集,向集合中添加一个对象,然后将变异集设置为值。

NSMutableSet *favoriteBrands=[aFavoriteList mutableSetValueForKey:@"brands"];
[favoriteBrands addObject:aNewBrandObj];
[aFavoriteList setValue:favoriteBrands forKey:@"brands"];

如果为FavoriteList创建一个类,则可以获得方法,使您可以轻松地将对象添加到多个关系,而无需编写三行代码。