【发布时间】:2012-01-30 18:05:05
【问题描述】:
托管对象是否可以与未选中的“可选”建立关系?
如果是这样,我如何在没有 validateForInsert: 失败的情况下插入它? 我希望关系是强制性的,但在插入之前我无法在当前对象和另一个对象之间建立连接,因为我要连接的两个对象位于不同的上下文中。
具体例子:
我通常有一个 MOC。假设我在上下文中保存了一个Person。
现在我想创建一个新的,所以我实例化了一个Person,但是不将它插入到上下文中。当用户从某个表视图中选择一个兄弟并设置“兄弟”属性时,反向关系将尝试在 MOC 中保存的对象与 MOC 中尚不存在的对象之间建立连接,这将导致应用程序崩溃。
我的问题:如果“兄弟”关系不是是可选的,我什至可以创建并插入一个新人吗?
【问题讨论】:
-
请说明您如何初始化您所指的每个 NSManagedObjects。您应该使用
initWithEntity:insertIntoManagedObjectContext:方法进行初始化,该方法立即将对象与托管对象上下文相关联(但不会将其保存到持久存储) -
我就是这么做的。不过请检查我的答案,我已经解决了这个问题。感谢您的帮助。
标签: objective-c core-data entity-relationship nsmanagedobject nsmanagedobjectcontext