ARC下block存储在代码区或者堆区
1、全局block存在代码区:没有访问处于栈区变量(如局部变量)。也没有访问堆区变量(如alloc创建的对象)
2、堆区block存在堆区:访问了堆区或者栈区的变量,实际存在栈区,ARC下会自动拷贝到堆区。
注:堆区实在不断变化的,不断有对象的创建及销毁,如果block没有强引用,随时可能被销毁,即定义block时需要使用strong或者copy修饰。
ARC下block存储在代码区或者堆区
1、全局block存在代码区:没有访问处于栈区变量(如局部变量)。也没有访问堆区变量(如alloc创建的对象)
2、堆区block存在堆区:访问了堆区或者栈区的变量,实际存在栈区,ARC下会自动拷贝到堆区。
注:堆区实在不断变化的,不断有对象的创建及销毁,如果block没有强引用,随时可能被销毁,即定义block时需要使用strong或者copy修饰。
本文标题:block块的内存位置、类型、为什么用copy或strong修饰
本文链接:https://www.haomeiwen.com/subject/ioqmmrtx.html
网友评论