OC copy和mutableCopy

基本概念

浅拷贝:地址拷贝,两个对象指向同一地址。
深拷贝:对象拷贝,两个对象指向不同地址。

copy & mutableCopy

copy mutableCopy
不可变对象 浅拷贝 不可变 深拷贝 可变
可变对象 深拷贝 不可变 深拷贝 可变

总结:

  1. 用copy后都是不可变的,用mutableCopy后都是可变的。
  2. 用mutableCopy都是深拷贝。
  3. 区别: 不可变对象copy是浅拷贝,可变对象copy后是深拷贝。

Property用copy修饰

Property用copy修饰是一次深拷贝

不可变用copy修饰,相当于做一次备份,不会在其或子类中被修改。
可变对象一般不推荐copy修饰,copy后会变成不可变,使用可变方法会抛异常。

你可能感兴趣的:(iOS开发杂货,OC,copy,mutableCopy)