copy mutablecopy 和 retain 的 区别
1. retain :只是简单让对象的引用计数+1;
2. copy : 不可变拷贝,拷贝过后都是不可变类型 引用计数+1; 浅拷贝------>>>>拷贝的是指针
3. mutableCopy :可变拷贝,可以将不可变对象变为可变对象 引用计数+1 深拷贝--------->>>>拷贝的是对象
只有不可变类型进行不可变拷贝是浅拷贝,区域的都是深拷贝
copy 和 nsmutablecopy 的这些特性用于字符串、数组、集合、字典 NSData 等
当一个对象想要拷贝时,该对象应该遵循 NSCopying协议;进行可变拷贝时,遵循NSMutableCopying协议