iOS知识复习条记(8)---block底层原理

开发者 2024-9-12 13:52:30 81 0 来自 中国
1.jpg block 类型

在MRC情况下
1.全局block:如果没有利用外部auto变量,大概只利用全局变量或是静态变量,则是全局block
2.栈block:如果利用了外部auto变量,则是栈block
3.堆block:栈block调用了copy
在ARC情况下
1.全局block:如果没有利用外部auto变量,大概只利用全局变量或是静态变量,则是全局block
2.栈block:如果利用了外部auto变量,会从栈block拷贝到堆block
3.堆block:访问了外部auto变量的block,并进行的copy操纵
auto 修饰变量,block会捕捉,而且是值转达,内部无法修改值。
static 修饰变量,block会捕捉,而且是指针转达,内部可以修改值。
全局变量,block不会捕捉,是直接获取值。
利用__weak 修饰可以办理循环引用题目
利用__block 修饰auto变量,内部是酿成一个结构体,结构体内部包罗变量的指针,以是就可以实现在block内部修改auto变量的值了。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 20:26, Processed in 0.157013 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表