将NSManagedObject重新插入ManagedObjectContext

时间:2016-11-09 05:53:30

标签: ios core-data nsmanagedobject nsmanagedobjectcontext managedobjectcontext

我有一个NSManageObect的实例,我创建的没有有效的上下文只是用它来保存数据并传递它

convenience init() {
    let entityDescription =  NSEntityDescription.entityForName("UserEntity", inManagedObjectContext:managedContext)
    self.init(entity: entityDescription!, insertIntoManagedObjectContext: nil)
}

但有时我真的让Core Data跟踪(保存)它们也很方便。在这些实例中,我执行以下操作将其添加到核心数据管理对象上下文

myManagedContext.insertObject(myUserEntityObject)

这一切都很棒。

我的问题是,如果我多次重新插入myManagedContext的相同引用是否真的很重要?这次重新插入是否有任何不利因素?在我的脑海里,因为插入相同的对象引用而没有什么区别。

1 个答案:

答案 0 :(得分:1)

只要有两个条件,它就是安全的:

  1. 这是相同的托管对象上下文
  2. 托管对象的ID仍然是临时ID(即托管对象尚未保存)。
  3. 使插入调用看起来像

    会更安全
    if myUserEntityObject.objectID.isTemporaryID {
        myManagedContext.insertObject(myUserEntityObject)
    }