概念性的东西我们不讲了,我们都知道集合类的拷贝比较特殊,对集合类进行
Deep Copy
其实并不是完整的深拷贝,只是拷贝了外面的容器,里面的指针并没有被拷贝。道理大家都懂,可平时用的少,前几天我就栽了个跟头,特此记录一下。
网上有现成的解决方案,特此解读
- 遍历字典中所有的键值对
- 如果还是字典,继续遍历轮询
- 不是字典,采取
mutableCopy
- 无法执行
Copy
的需要进行特殊处理,例如UIImage
1 | -(NSMutableDictionary *)mutableDeepCopy |
官方的方法是可以通过 归档
、解档
实现。