多对多关系核心数据
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.category
是 NSMutableSet
对象而不是 Category
对象
试试这个
NSMutableSet *categorySet = place.category;
foreach (Category *category in categorySet)
NSString *catId = category.catId;
NSLog(@"catId: %@", catId);
【讨论】:
我认为这是一个错误或缺少概念.. 但我想念它变成了 NSMutableSet!谢谢捕手!!!以上是关于多对多关系核心数据的主要内容,如果未能解决你的问题,请参考以下文章