0

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

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

但有时让 Core Data 跟踪(保存)它们对我来说很方便。在这些情况下,我执行以下操作将其添加到核心数据托管对象上下文

myManagedContext.insertObject(myUserEntityObject)

这一切都很好。

我的问题是,如果我多次重新插入对 myManagedContext 的相同引用,实际上是否重要?这种重新插入有什么不好的地方吗?在我看来,它不应该有所作为,因为它插入了相同的对象引用。

4

1 回答 1

1

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

  1. 这是相同的托管对象上下文
  2. 被管对象的ID仍然是一个临时ID(即被管对象还没有被保存)。

让插入调用看起来像这样会更安全

if myUserEntityObject.objectID.isTemporaryID {
    myManagedContext.insertObject(myUserEntityObject)
}
于 2016-11-09T17:39:51.393 回答