ios - 如何使核心数据反向关系不是两个引用都为零

标签 ios core-data entity-relationship relationships inverse

我有一个奇怪的问题。

因此构建一个使用核心数据的 iOS 应用程序。我有一个学生实体和一个 session 实体。 学生 session 是一对多的。

在学生实体上,有一个名为“ session ”的字段/关系,代表学生可以拥有的许多 session 。

在 session 实体上,有一个名为“student”的字段/关系,代表它所属的学生。

同样在学生实体上,有一个名为“session”的字段/关系来表示学生所在的当前类(class)。

我遇到的问题是,当我结束学生 session 并将 session 属性设置为 nil ([student setSession:nil];) 时, session 中的学生属性也会被取消。

当我尝试做的时候:

[session student]

我得到一个空值。

我能够解决这个问题的唯一方法是将“Inverse”类型设置为“No Inverse”,在这种情况下,使 [student setSession:nil] 无效不会使 [session student] 无效。但当然我得到了关于“配置错误的属性”的漂亮的 xcode 警告“Student.session 应该有一个反”和“Session.student 应该有一个反”

有没有办法让我保持反向关系,但在 student.session 设置为 nil 时不使 session.student 无效?我尝试将 Student 实体和 Session 实体的删除规则更改为“无操作”,但它似乎没有帮助。

任何建议将不胜感激..也许没有逆是正确的方法..只是想确保我做的是正确的。

谢谢!

最佳答案

您可以定义从学生到 session 的一对多关系“ session ”和反向关系“学生”,以及从学生到 session 的一对一关系“current_session”,不同 反向关系“current_student”。

关于ios - 如何使核心数据反向关系不是两个引用都为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712402/

相关文章:

iphone - 在显示之前获取键盘的大小

ios - 根据选择的货币代码格式化货币而不考虑设备的语言环境 (Swift)

mysql - 我是在标准化之前还是之后创建 ER 图?

diagram - 如何将背景颜色添加到 PlantUML 中的实体关系图中

国际象棋中的数据库设计和规范化

ios - SKProductsRequest 在生产环境中不返回任何产品

ios - 无法正确自动调整自动布局和堆栈 View (Swift 3、Xcode 8)

swift - 核心数据 [NSSet intersectsSet :]: set argument is not an NSSet

ios - 核心数据与父实体集一起保存

iOS 复合谓词