Ios 如何在.xcdatamodel的核心数据中建立多对多关系
大家好,下面的核心数据示例-objective-CIOS确实需要帮助 实体1:人 属性:名称 实体2:语言 属性:LanguageName 例如姓名:John会说语言姓名:英语、韩语、日语 例2是LanguageName:西班牙语、英语、韩语由John、Amy、Ashley说 第一个问题是如何在xcdatamodel中建立这种关系 第二个问题是如何将John会说英语、韩语、日语等信息存储到核心数据中 第三个问题是如何动态显示数据,例如 比如说,如果我有一个由languageName生成的按钮,当我点击它时,它应该在tableview中显示说该语言的每个人 我尝试了一种不同的方法,使用位移动和存储每个位中的运动,并使用while循环来匹配它,但我已经阅读了一段时间,多对多关系似乎更合适 感谢您的帮助,提前谢谢Ios 如何在.xcdatamodel的核心数据中建立多对多关系,ios,core-data,many-to-many,nsentitydescription,Ios,Core Data,Many To Many,Nsentitydescription,大家好,下面的核心数据示例-objective-CIOS确实需要帮助 实体1:人 属性:名称 实体2:语言 属性:LanguageName 例如姓名:John会说语言姓名:英语、韩语、日语 例2是LanguageName:西班牙语、英语、韩语由John、Amy、Ashley说 第一个问题是如何在xcdatamodel中建立这种关系 第二个问题是如何将John会说英语、韩语、日语等信息存储到核心数据中 第三个问题是如何动态显示数据,例如 比如说,如果我有一个由languageName生成的按钮,当
我没有提供任何代码,因为我甚至不知道从哪里开始。要创建多对多关系,请创建两对多关系,并使它们彼此相反 就你而言,你可以
人员添加一个对话关系,以及
- 将
目的地
设置为语言
- 将
类型设置为多个
spokenBy
关系添加到Language
,以及
- 将
设置为目的地
个人
- 将
设置为反向
语音
- 将
类型设置为
多个
反向
,您可以从一侧设置关系,核心数据将自动照顾另一侧,从而确保数据一致性。例如,曼迪会说英语和西班牙语。要将她所说的语言保存到您的核心数据存储中,只需执行以下操作:
// mandy, english and spanish are all NSManagedObject objects
mandy.speaks = [NSSet setWithObjects:english, spanish, nil];
NSLog(@"%@", [english.spokenBy containsObject:mandy] ? @"YES" : @"NO"); // YES
您可以收听nsManagedObjectContextObjectsIDChangeNotification
以在托管对象发生更改(即插入、删除或更新)时获得通知
有关更多信息,请参阅此