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) 
}