好的,所以我了解获取请求,并且可以访问彼此之间的一对一关系。我很难理解一对多。
我的例子:一个郊区有许多街道,这些街道属于一个郊区。这将创建 NSSet 属性。如何将街道及其属性(即@“名称”)添加到特定郊区。我有一个列出郊区的 TableView,当您单击郊区时,它应该显示与该特定郊区相关的街道。
我知道这里还有许多其他核心数据问题,但阅读它们只是出于某种原因并没有在我的脑海中“点击”。
我正在使用 MagicalRecord,但据我了解,我所做的只是最小化我必须编写的代码,因此在我什至可以在 MR 上尝试之前,我需要了解如何在 Core Data 中执行此操作。
Best Answer-推荐答案 strong>
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 Core Data 一对多关系,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/23097292/
|