好的,所以我理解了获取请求,并且可以访问彼此之间的一对一关系。我很难理解一对多。
我的例子:郊区有很多街道,这些街道属于一个郊区。这将创建NSSet属性。如何将街道及其属性(即@" name")添加到特定的郊区。我有一个列出郊区的TableView,当你点击一个郊区时,它应该显示与该特定郊区相关的街道。
我知道这里有其他核心数据对很多问题,但是阅读它们并不是"点击"由于某种原因,在我脑海里。
我正在使用MagicalRecord但是根据我的理解,所做的一切都是最小化我必须编写的代码,因此我需要了解如何在Core Data中执行此操作,然后才能在MR上尝试。
答案 0 :(得分:2)
1:创建郊区实体的实例:
AppDelegate* appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext* context = [appDelegate managedObjectContext];
Suburb *mySuburb = [NSEntityDescription insertNewObjectForEntityForName:@"Suburb" inManagedObjectContext:context];
2:初始化郊区的一组街道
mySuburb.streets = [[NSMutableSet alloc]init];
3:创建街道:
Street *myStreet = [NSEntityDescription insertNewObjectForEntityForName:@"Street" inManagedObjectContext:context];
4:"链接"两个
myStreet.suburb = mySuburb;
[mySuburb addStreetObject:myStreet];
编辑:以上假设您创建了正确的关系。理想情况下,街道关系属性将是级联类型关系,而郊区关系属性将无效。 如果是这种情况,当您删除街道时,它将从属于郊区的街道集中消失。如果您删除了郊区,它将删除所有街道。
哦,不要忘记保存背景。
答案 1 :(得分:0)
创建查询以检查郊区是否存在。如果不是,请创建新的郊区
从郊区获取NSSet Streets。
如果NSSet * Suburb == nil - >创建街道,为此街道指定名称 - >创建新郊区并将街道分配到此郊区
如果NSSet * Suburb!= nil - >将新街道插入郊区
希望这个想法可以帮助你。