block原理
2018-08-24 本文已影响13人
说不出口的喵
1 block结构:
impl结构 描述结构 捕获变量
impl结构里面有isa指针 函数指针等
描述结构里面有计算block大小的size等
block分为三种 分别是栈上 堆上 全局上
调用了auto临时变量就是在栈上block类型即stackblock
没有访问调用auto就是全局block类型globalblock
调用copy就是堆上block类型即是mallocblock
2
auto变量在block是值传递 捕获的
static是指针传递 捕获的
全局变量不用捕获 直接访问 因为是全局的。
3
globalblock 类型调用copy 还是globalblock
mallocblock 类型调用copy 还是mallocblock 引用上加1
stackblock 类型调用copy 是mallocblock