局部变量
auto自动变量:离开作用域就销毁 值传递 捕获
static 指针传递
全局变量 直接访问 不捕获



在ARC环境下,编译器会根据情况自动将栈上的block复制到堆上,
1 作为函数返回值
2 将block 赋值给_strong的指针
3 block作为cocoa API中方法名含有usingBlock的方法参数时
4 GCD 对空间 自动进行copy
只要block 在栈上,引用auto变量,是不会产生强引用
如果block被拷贝到堆上,
会调用block内部的copy函数
copy函数内部会调用_Block_object_assign函数
_Block_object_assign函数会根据auto的变量的修饰符(__strong __weak _unsafe_unretained)做出相应的操作,类似于retain(形成强引用、弱引用)
copy函数
dispose函数