Ios 在swift中获取NSManagedObject类实例的副本

Ios 在swift中获取NSManagedObject类实例的副本,ios,swift,Ios,Swift,我有一个Addon类的实例(继承自NSManagedObject)foundsamdon。我想创建这个类实例的副本并改变它的属性。我试图使用以下代码复制此实例,但我不确定如何实现它,因为我遇到了一个异常 -[加载项copyWithZone:]:发送到实例0x7f9d1d805000的选择器无法识别 我不知道如何使用copyWithZone:函数创建这个类实例的副本。我在下面发布了代码,我试图将foundsamencedon复制到一个新标识中,samencedon添加,然后更改其属性product

我有一个
Addon
类的实例(继承自
NSManagedObject
foundsamdon
。我想创建这个类实例的副本并改变它的属性。我试图使用以下代码复制此实例,但我不确定如何实现它,因为我遇到了一个异常

-[加载项copyWithZone:]:发送到实例0x7f9d1d805000的选择器无法识别

我不知道如何使用
copyWithZone:
函数创建这个类实例的副本。我在下面发布了代码,我试图将
foundsamencedon
复制到一个新标识中,
samencedon添加
,然后更改其属性
productAddonPrice

if let sampleAddonToAdd = foundSampleAddon.copy() as? Addon {
        if addonCategoriesSent![sentIndexPath!.section].replacePreviousBasePrice == 1 {
             sampleAddonToAdd.productAddonPrice = NSNumber(int: 0)
        }
        addonsToAddBackToProduct.append([keyAnAddon: sampleAddonToAdd, keyAddonCount: 1])
}

您必须创建第二个
NSManagedObject
并复制属性

let sampleAddonToAdd = NSEntityDescription.insertNewObjectForEntityForName("Addon", inManagedObjectContext: self.managedObjectContext) as! Addon
sampleAddonToAdd.productAddonPrice = foundSampleAddon.productAddonPrice.copy() // copy properties
然后修改要修改的属性

NSManagedObject不符合NSCopying协议。如果你 要创建具有相同数据的新记录,只需插入一个新的 对象,并将值从第一个对象指定给第二个对象 反对


此初始化不会保存FoundSamdOn的属性,这是我想要实现的。我想要一份拷贝,而不是一份初始化。我想说的是,你必须自己制作拷贝。复制所有属性可以得到对象的副本。但是类本身的某些属性引用了另一个类,如何处理它们?你是说引用了另一个实例?你可以复制引用。对不起,我指的是另一个类的实例。如果我复制它们,它的任何变异都会反映在两个
Addon
对象中