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,不可变对象释放;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 1,592评论 0 1
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 2,043评论 0 12
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,014评论 0 7
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,375评论 0 6
  • 吾之名太宰治阅读 996评论 35 45