好吧,我了解获取请求,以及我可以做到的相互访问一对一的关系。我在理解一对多时遇到了一些困难。
我的示例:一个郊区有许多街道,这些街道属于一个郊区。这将创建 NSSet 属性。如何将街道及其属性(即@“名称”)添加到特定郊区。我有一个列出郊区的 TableView,当您单击某个郊区时,它应该显示与该特定郊区相关的街道。
我知道这里还有其他核心数据问题,但阅读它们时,由于某种原因,我的脑海中并没有“点击”它们。
我正在使用 MagicalRecord,但根据我的理解,它所做的只是最大限度地减少我必须编写的代码,因此我需要了解如何在 Core Data 中执行此操作,然后才能在 MR 上尝试。
最佳答案
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];
编辑:以上假设您创建了正确的关系。理想情况下,街道关系属性将是级联类型关系,而郊区关系属性将无效。 如果是这种情况,当您删除一条街道时,它将从属于郊区的街道集中消失。如果删除一个郊区,它会删除所有街道。
哦,别忘了保存上下文。
关于iOS核心数据一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23097292/