为什么要用copy不用strong?
- ARC 开发的时候,编译器底层对 block 做过一些优化,可以放置出现内存泄漏
- block定义在栈区,出作用域会被自动弹栈销毁
- 如果用 strong,相当于强引用了一个栈区的变量!
- 从内存管理的角度而言,程序员需要管理的内存只有堆区的!
- 定义 copy 属性,在设置数值的时候,可以把局部变量从栈区复制到堆区
本文探讨了在ARC开发中为何对于block应采用copy而非strong。主要原因是编译器对block进行了优化以防止内存泄漏,并且block定义在栈区,使用strong会强引用栈区变量,不符合内存管理规范。通过copy可以将栈区变量复制到堆区。
为什么要用copy不用strong?
- ARC 开发的时候,编译器底层对 block 做过一些优化,可以放置出现内存泄漏
- block定义在栈区,出作用域会被自动弹栈销毁
- 如果用 strong,相当于强引用了一个栈区的变量!
- 从内存管理的角度而言,程序员需要管理的内存只有堆区的!
- 定义 copy 属性,在设置数值的时候,可以把局部变量从栈区复制到堆区
839

被折叠的 条评论
为什么被折叠?
