iOS 属性字段copy讨论

1.局部变量的 retainCount==1;属性变量的 retainCount == 2;当指针置空时,属性变量的retainCount虽然等于2,但此时同样置空。

2.copy字段的属性变量指针,指向一个可变对象的时候,指针会自动copy改区域内容,生成一个与原区域无关的新的区域,该区域不能修改;指向一个不可变对象,此时指针就是指针,指向该区域。

3.MRC下使用:讨论copy属性的指针,指向局部变量后的异同:

1)copy指针指向可变对象:原有对象retainCount保持不变,copy指针重新开辟一块区域,复制该对象,retainCount == 1;

2)copy指针指向可变对象,然后可变对象释放,:可变对象区域注销,copy指向区域不受影响;

3)copy指针指向不可变对象:不可变对象和copy指针指向对象是同一个对象,retainCount == 2;

4)copy指针指向不可变对象,然后不可变对象置空:copy指向对象 retainCount == 1,不可变对象释放;

你可能感兴趣的:(iOS 属性字段copy讨论)