将 NSManagedObject 重新插入到 ManagedObjectContext
Re-inserting NSManagedObject to ManagedObjectContext
我创建了一个没有有效上下文的 NSManageObject 实例,只是为了用它来保存数据并传递它
convenience init() {
let entityDescription = NSEntityDescription.entityForName("UserEntity", inManagedObjectContext:managedContext)
self.init(entity: entityDescription!, insertIntoManagedObjectContext: nil)
}
但有时让 Core Data 跟踪(保存)它们对我来说也很方便。在那些情况下,我执行以下操作将其添加到核心数据管理对象上下文
myManagedContext.insertObject(myUserEntityObject)
这一切都很好。
我的问题是,如果我多次重新插入对 myManagedContext 的相同引用是否真的很重要?这种重新插入有什么缺点吗?在我看来,它应该不会有什么不同,因为它插入了相同的对象引用。
只要满足两个条件就是安全的:
- 是同一个托管对象上下文
- 托管对象的ID仍然是一个临时ID(即托管对象尚未保存)。
让插入调用看起来像
会更安全
if myUserEntityObject.objectID.isTemporaryID {
myManagedContext.insertObject(myUserEntityObject)
}
我创建了一个没有有效上下文的 NSManageObject 实例,只是为了用它来保存数据并传递它
convenience init() {
let entityDescription = NSEntityDescription.entityForName("UserEntity", inManagedObjectContext:managedContext)
self.init(entity: entityDescription!, insertIntoManagedObjectContext: nil)
}
但有时让 Core Data 跟踪(保存)它们对我来说也很方便。在那些情况下,我执行以下操作将其添加到核心数据管理对象上下文
myManagedContext.insertObject(myUserEntityObject)
这一切都很好。
我的问题是,如果我多次重新插入对 myManagedContext 的相同引用是否真的很重要?这种重新插入有什么缺点吗?在我看来,它应该不会有什么不同,因为它插入了相同的对象引用。
只要满足两个条件就是安全的:
- 是同一个托管对象上下文
- 托管对象的ID仍然是一个临时ID(即托管对象尚未保存)。
让插入调用看起来像
会更安全if myUserEntityObject.objectID.isTemporaryID {
myManagedContext.insertObject(myUserEntityObject)
}