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