多对多关系核心数据

Posted

技术标签:

【中文标题】多对多关系核心数据【英文标题】:Many - Many Relationship Core Data 【发布时间】:2012-11-26 04:37:20 【问题描述】:

我的两个实体有很多很多:

一个类别可以有很多地方,另一方面,地方也可以是 在许多类别下

数据已成功存储在我的 sqlite 中,但是当我在 sqlite manager 软件中检查两个实体的结构时,两者之间的关系消失了。

通常,当我声明 1..* 时,例如:

实体 B 有一个实体 A

地点属于一个类别

Category 将成为 Place 中的一个属性,我可以在其中使用它以供以后使用:

Category *category = (Category*)place.category;
NSString *catId = category.catId;

如果那里有值,它应该返回一个值catId

但在我的多对多情况下,我什至无法获得catId,它像这样崩溃:

-[_NSFaultingMutableSet catID]: unrecognized selector sent to instance

我在这里错过了一个概念吗?我相信核心数据支持多对多关系,正如我在某些网络上所读到的那样。谢谢!

【问题讨论】:

发布您的 Category 类的代码 【参考方案1】:

您有来自 Place->Category 的“多对多”关系,因此 place.categoryNSMutableSet 对象而不是 Category 对象

试试这个

NSMutableSet *categorySet = place.category;

foreach (Category *category in categorySet)

    NSString *catId = category.catId;
    NSLog(@"catId: %@", catId);

【讨论】:

我认为这是一个错误或缺少概念.. 但我想念它变成了 NSMutableSet!谢谢捕手!!!

以上是关于多对多关系核心数据的主要内容,如果未能解决你的问题,请参考以下文章

为核心数据手动创建多对多关系中的中间表

核心数据多对多关系的正确删除规则?

核心数据。加入 2 个具有多对多关系的表?

将对象添加到具有多对多关系的核心数据中的 NSSet

多对多关系核心数据

核心数据:与状态的多对多关系