我有一个菜单屏幕,其中填充了来自NSManagedObject的数据。当此屏幕启动时,用户可以输入各种值。等
我遇到的问题是我不需要改变用于填充屏幕的初始NSManagedObject。我需要一个用户可以改变的副本,因为如果他们在一切都完成之前取消,那么原始和正确的信息会被公正的数据破坏。
但是,我在NSManagedObject中实现任何类型的复制方法或进程时遇到问题,因为所有属性都是@dynamic。
如果我只是在NSManagedObject中的copyWithZone方法中'返回self',那么它会正确复制所有内容吗?
答案 0 :(得分:1)
您想要的是对同一个NSManagedObject进行更改,但是在子NSManagedObjectContext中。这样,如果您需要放弃更改,您可以抛弃子上下文而不影响主上下文或对象。请参阅this question。
答案 1 :(得分:1)
为什么不使用类别将复制方法添加到自定义NSManagedObject?
如果您的NSManagedObject是User,那么创建一个新类别User + copy.h / m,您将在其中添加复制方法,该方法将逐个复制所有单个字段。