【发布时间】:2012-09-07 23:30:31
【问题描述】:
我在NSManagedObject 上有一对多的关系,即NSOrderedSet。
但是,当在有序集上调用 addObject: 方法(我从 NSManagedObjectModel 子类对象的属性调用)时,不会自动设置反向关系。这是什么原因造成的?
作为相关说明,我正在使用 Magical Record 来更轻松地将数据映射到 NSManagedObject 对象。
此外,我也参考了这篇文章,但我没有在我的子类上覆盖这些方法:
【问题讨论】:
-
我们没有代码,没有模型,没有什么可做的。我习惯于在我的对象上设置“父”属性并自动发生相反的情况。我建议你做的是在你拥有对象及其父对象的地方获取一些代码,记录父对象的 NSSet 属性和对象父对象,设置父对象,记录它(以确保它“接受”),然后重新记录父对象的集合。这只是 Core Data 的一种常见用法,它只是让我觉得你的模型如果 foobared。
-
是的,我同意反向关系是 Core Data 的常见用法。然而,显然,Core Data 中的有序关系(在 iOS 5.0 中引入)并不常用,或者没有经过很好的测试......真是太糟糕了......这是另一个解决这个问题的堆栈溢出(在挖掘后发现):@987654322 @。我将为未来的用户添加这个问题的答案,其中包含关于为什么不能自动设置反向关系的所有发现(这是 generic 提出的问题)。
标签: iphone ios ipad core-data magicalrecord