我的两个实体有很多对很多的情况:
A category can have many places, in other hand, places can be also under many categories
数据已成功存储在我的sqlite中,但是当我在sqlite管理器软件中检查两个实体的结构时,两者之间的关系消失了。
通常,当我声明 1..* 时,例如:
Entity B has one entity A
Place is under one category
类别将成为 Place 中的一个属性,我可以在以后使用它:
Category *category = (Category*)place.category;
NSString *catId = category.catId;
如果有值,它应该返回一个 catId
值。
但是在我的多对多情况下,我什至无法获取 catId
,它会像这样崩溃:
-[_NSFaultingMutableSet catID]: unrecognized selector sent to instance
我错过了一个概念吗?我相信核心数据支持多对多关系,正如我在某些网络上读到的那样。谢谢!
最佳答案
您在 Place->Category 之间存在“对多”关系,因此 place.category
是一个 NSMutableSet
对象,而不是 Category
对象
试试这个
NSMutableSet *categorySet = place.category;
foreach (Category *category in categorySet)
{
NSString *catId = category.catId;
NSLog(@"catId: %@", catId);
}
关于ios - 多对多关系核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13558736/