CoreData 向实体行添加新关系
Posted
技术标签:
【中文标题】CoreData 向实体行添加新关系【英文标题】:CoreData Adding a new Relationship to an Entity row 【发布时间】:2010-11-18 15:25:18 【问题描述】:那么问题来了:
我的项目有 2 个实体。第一个是组织,第二个是品牌。它们与一对多的关系相关联。 “一个组织可以拥有多个品牌” 一切都为此而努力。带有 Organization 和 Brandtableview 和 DetailView 的 Tableview。
我想要的是将收藏夹功能添加到我的应用程序中,我可以在其中将收藏夹列表与我喜欢的品牌联系起来。 因此,我将实体“收藏夹”添加到 xcdatamodel。每个 FavouriteList 都有一个 Name,并通过多对多关系连接到“Brands”。“一个 Favouritelist 可以有多个 Brands 和 Ebrands”可以在多个 Favouritelist 中。
创建一个新的List有以下代码
currentFav = (favoriten*)[NSEntityDescription insertNewObjectForEntityForName:@"favoriten" inManagedObjectContext:managedObjectContext];
[currentFav setName:@"MeineFavoriten"]; [self saveAction];
在 Brands 的 DetailView 中,我有一个 addToFav 操作,我想更新 Brands 中的 Brands 与 Favouritelist 的关系。
示例: “将名称为“XY”的品牌链接到收藏的 MeineFavouriten”
我该怎么做?
【问题讨论】:
【参考方案1】:对多关系是集合,因此您可以使用简单的setValue
调用。相反,您首先必须获取一个可变集,将一个对象添加到该集中,然后将可变集设置为值。
NSMutableSet *favoriteBrands=[aFavoriteList mutableSetValueForKey:@"brands"];
[favoriteBrands addObject:aNewBrandObj];
[aFavoriteList setValue:favoriteBrands forKey:@"brands"];
如果您为 FavoriteList 创建一个类,您将获得一些方法,这些方法可以让您轻松地将对象添加到多对多关系中,而无需编写三行代码。
【讨论】:
以上是关于CoreData 向实体行添加新关系的主要内容,如果未能解决你的问题,请参考以下文章
向 coreData 中的实体添加浮点属性,并在每次添加新对象时递增它