【发布时间】:2015-06-30 19:43:44
【问题描述】:
我想让NSManagedObject 的子类作为NSDictionary 的键。因此,我必须遵守NSCopying并实现copyWithZone:。
起初我虽然我不得不做类似的事情:
-(id)copyWithZone:(NSZone*)zone{
return [NSEntityDescription insertNewObjectForEntityForName:@"Thing" inManagedObjectContext:self.context]
}
但是,这会产生在我的数据库中插入新内容的副作用,我想避免这种情况。
在NSManagedObject 中实现NSCopying 的最佳方式是什么?
【问题讨论】:
-
NSDictionary要求其密钥是不可变的。这就是为什么类型是id<NSCopying>而不仅仅是id。NSManagedObject的实例与该合同不匹配。也许还有另一种方法更适合您要解决的问题。
标签: objective-c core-data nsdictionary nscopying