【发布时间】:2015-11-26 06:56:35
【问题描述】:
我有一个具有 NSMutableArray 属性的 CustomObject(NSObject 类型)。此属性包含 NSDictionary 对象。我只需要该属性的深层副本以允许在不同的视图控制器中进行编辑;编辑后,我希望用编辑后的深度复制属性替换原始属性。
我的问题是:
- 我是否需要进行深度“copyWithZone”?
- 如果是这样,考虑到它只是需要深度复制的单个属性,我该如何实现它?
我现在已经通过以下方式规避了这一点:
NSMutableArray *deepCopyArray = [NSMutableArray arrayWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:<CustomObject>instance.<propertyToDeepCopy>]]];
虽然这可以作为 NSMutableArray 和 NSDictionary 实现 NSCoding,但感觉不是正确的方式,或者是吗?请帮助:)
【问题讨论】:
标签: ios objective-c nsmutablearray deep-copy custom-object