我有一个Addon
类的实例(继承自NSManagedObject
)foundSampleAddon
。我想创建这个类实例的副本并改变其属性。我试图使用以下代码复制此实例,但我不知道如何实现它,因为我得到一个异常
- [Addon copyWithZone:]:无法识别的选择器发送到实例0x7f9d1d805000
我不知道如何使用copyWithZone:
函数创建此类实例的副本。我已将以下代码发布到我尝试将foundSampleAddon
复制到新身份sampleAddonToAdd
,然后更改其属性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])
}
答案 0 :(得分:1)
NSManagedObject不符合NSCopying协议。如果你 想要用相同的数据创建一个新记录,只需插入一个新的 对象并将第一个对象的值分配给第二个对象 对象
答案 1 :(得分:0)
您必须创建第二个NSManagedObject
并复制属性。
let sampleAddonToAdd = NSEntityDescription.insertNewObjectForEntityForName("Addon", inManagedObjectContext: self.managedObjectContext) as! Addon
sampleAddonToAdd.productAddonPrice = foundSampleAddon.productAddonPrice.copy() // copy properties
然后修改您想要的属性。