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