Block深入补充
block的分类
1.栈block
特点:生命周期由系统控制,函数返回即销毁
用到局部变量、成员属性\变量,且没有强指针引用的block都是栈block
a.用到局部变量(图1),i为局部变量,block直接在NSLog中打印,没有被指针引用
b.用到成员属性\变量(图2),name为成员属性
2.堆block 特点:没有强指针引用即销毁,生命周期由程序员手动管理
栈block如果有强指针引用或copy修饰的成员属性引用就会被拷贝到堆中,变成堆block
a.强指针引用(图3),block被testBlock引用,testBlock就是一个block类型的强指针(ARC环境下默认就是强指针)