У меня есть CustomObject (типа NSObject), имеющий свойство NSMutableArray. Это свойство содержит объекты NSDictionary. Мне нужна глубокая копия только свойства, чтобы разрешить редактирование в другом контроллере представления; после редактирования я хочу заменить исходное свойство отредактированным глубоко скопированным свойством.
Мой вопрос:
- Нужно ли делать глубокий 'copyWithZone'?
- и если да, то как мне это реализовать, учитывая, что это всего лишь одно свойство, требующее глубокого копирования?
На данный момент я обошел это, выполнив:
NSMutableArray *deepCopyArray = [NSMutableArray arrayWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:<CustomObject>instance.<propertyToDeepCopy>]]];
Хотя это работает, поскольку NSMutableArray и NSDictionary реализуют NSCoding, это не кажется правильным, или нет? Пожалуйста, помогите :)