Core Data deleteObject将所有属性设置为nil

时间:2016-05-07 19:04:12

标签: ios swift core-data nsmanagedobjectcontext

我是一个新的CoreData。

当我在deleteObject()对象上使用object致电NSManagedContext时,会将object中的所有属性设置为nil。反正我有没有避免这种情况?我不想被废除。

我的项目是在Swift。

1 个答案:

答案 0 :(得分:1)

您误解了CoreData的目的。它是管理持久性商店的一种方式,这意味着无论你告诉你的上下文,都是绝对的。因此,如果您deleteObject(),该对象已准备好删除,您就不应再触摸它了。

相反,您需要某种镜像对象,它允许您为内存使用创建NSManagedObject的新副本。你可以这样做;

struct MirrorManaged {
    var text: NSString
}

class Managed: NSManagedObject {
    @NSManaged var text: NSString

    func copyToMemory() -> MirrorManaged {
        return MirrorManaged(text: self.text)
    }
}