ios - 多对多关系核心数据

标签 ios core-data many-to-many

我的两个实体有很多对很多的情况:

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/

相关文章:

ios - 如何减少 WKInterfaceTable 中的行间距

ios - Titanium - 在 iOS native 模块中包装 ADTECHMobileSDK 的 CoreData 错误

objective-c - 多对多谓词

mysql - 插入多个多对多关系

ios - Swift UICollectionViewLayout contentSize 崩溃

ios - 当 iOS 设备被锁定并且我没有立即响应时接收远程通知

ios - 以编程方式开始在另一个 TableView 单元格中编辑 UITextField

iPhone - 通过 CoreData 将 float 存储在 SQLite 中

c# - 多对多关系更新 : Cannot insert duplicate key

Django - 通过模板中的ManyToMany额外字段访问