block 分析

1 .  block捕获外部变量

可以捕获局部变量,捕获auto类型的变量是值传递,值不变。捕获static类型的变量是指针传递,值可以变化。全局变量不能捕获,全局变量直接访问

2 .   block有3种类型

__NSGlobalBlock__(数据区block)  、__NSStackBlock__(盏区block)  、__NSMallockBlock__(堆区block)

3 .  如何区分block的三种类型 ,没有访问auto类型变量的是__NSGlobalBlock__(数据区block),访问了auto类型变量的是__NSStackBlock__(盏区block),盏区block调用copy就是__NSMallockBlock__(堆区block)

4 .    3种block调用了copy只有做了什么?

数据区block调用copy之后什么也不做,盏区block调用copy之后变成__NSMallockBlock__(堆区block)、堆区block调用copy之后引用计数加1

 

posted @ 2020-07-02 09:38  可可锋  阅读(198)  评论(0)    收藏  举报