1.使用场景:通常在一个函数的前面和后面都是重复性的东西,只有中间变化,通常使用block
2.注意事项
01:能够访问外面的变量(做用域问题)
02.里外变量同名的时候,访问里面那个(就近原则)
03.能够访问外面的变量,可是不能改外面的值,由于不是同一个地址(只是copy了一份,值传递)
04.想要改变外面变量的值,须要 变量前 加上 _block (地址传递)
05.block类型存放位置:默认是栈,对block进行copy时,放在碓中
在栈中时,访问外面对象,不会对对象 retain一次
copy后在堆中时,会对对象进行retain一次,形成内存泄漏,不=0
解决方案:对对象进行 _block, 这样无论在堆仍是栈,都不会retain一次
参考资料: