Core Data deleteObject 将所有属性设置为 nil
Core Data deleteObject sets all properties to nil
我是 CoreData 的新手。
当我在 NSManagedContext
对象上使用 object
调用 deleteObject()
时,它将 object
中的所有属性设置为 nil。无论如何我可以避免这种情况吗?我不想被取消。
我的项目在 Swift.
您误解了 CoreData 的用途。这是一种管理持久性存储的方式,这意味着无论您告诉上下文什么,都是绝对的。因此,如果您 deleteObject()
,该对象已做好删除准备,您不应再触摸它。
相反,您需要某种镜像对象,它允许您创建 NSManagedObject 的新副本以供在内存中使用。你可以这样做;
struct MirrorManaged {
var text: NSString
}
class Managed: NSManagedObject {
@NSManaged var text: NSString
func copyToMemory() -> MirrorManaged {
return MirrorManaged(text: self.text)
}
}
我是 CoreData 的新手。
当我在 NSManagedContext
对象上使用 object
调用 deleteObject()
时,它将 object
中的所有属性设置为 nil。无论如何我可以避免这种情况吗?我不想被取消。
我的项目在 Swift.
您误解了 CoreData 的用途。这是一种管理持久性存储的方式,这意味着无论您告诉上下文什么,都是绝对的。因此,如果您 deleteObject()
,该对象已做好删除准备,您不应再触摸它。
相反,您需要某种镜像对象,它允许您创建 NSManagedObject 的新副本以供在内存中使用。你可以这样做;
struct MirrorManaged {
var text: NSString
}
class Managed: NSManagedObject {
@NSManaged var text: NSString
func copyToMemory() -> MirrorManaged {
return MirrorManaged(text: self.text)
}
}