0

我有一个NSManageObect的这种情况下,我没有一个有效的环境中创建只是用它来保存数据,并通过它重新插入NSManagedObject到ManagedObjectContext

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

但有时对我来说,真正让我们得心应手它们也被Core Data追踪(保存)。在这些情况下,我做以下操作将它添加到核心数据管理对象上下文中

myManagedContext.insertObject(myUserEntityObject) 

这一切都很好。

我的问题是,是否真的很重要是否我重新插入相同的引用myManagedContext几次?这种重新插入有什么缺点吗?在我看来,它不会因为插入相同的对象引用而有所作为。

回答

1

两个条件,则这是安全的,只要:

  1. 这是相同的管理对象上下文
  2. 管理对象的ID仍然是一个临时的ID(即管理对象尚未保存) 。

这将是更安全,使插入电话的样子有点像

if myUserEntityObject.objectID.isTemporaryID { 
    myManagedContext.insertObject(myUserEntityObject) 
}