记录深浅拷贝在实际项目中的运用
当我们进行属性传值的时候等于是进行了一次浅拷贝,即两个对象指向的是同一个地址。问题来了:A界面传到B界面的属性用copy、strong 修饰时有什么区别?
解答:这里我们就要先普及深浅拷贝的相关知识了:
对于不可变对象不管是
copy
还是mutableCopy
都是深拷贝,对于可变对象只有mutableCopy
才是深拷贝。那么我们在进行赋值的时候如果想在第二个界面对属性进行操作,copy
的问题就来了,因为不管是可变还是不可变对象经过copy
之后都会变为不可变对象。我们再进行操作就会报错了。
网友评论