OGeek|极客世界-中国程序员成长平台

标题: iOS Core Data 一对多关系 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:28
标题: iOS Core Data 一对多关系

好的,所以我了解获取请求,并且可以访问彼此之间的一对一关系。我很难理解一对多。

我的例子:一个郊区有许多街道,这些街道属于一个郊区。这将创建 NSSet 属性。如何将街道及其属性(即@“名称”)添加到特定郊区。我有一个列出郊区的 TableView,当您单击郊区时,它应该显示与该特定郊区相关的街道。

我知道这里还有许多其他核心数据问题,但阅读它们只是出于某种原因并没有在我的脑海中“点击”。

我正在使用 MagicalRecord,但据我了解,我所做的只是最小化我必须编写的代码,因此在我什至可以在 MR 上尝试之前,我需要了解如何在 Core Data 中执行此操作。



Best Answer-推荐答案


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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4