Block从简单到高级的使用,以及项目中经常使用的场景
一、Block的简单使用
使用Block的三个步骤:1.定义Block变量;2.定义Block(即创建block代码块)3.调用block匿名函数;
1>以下是使用的两个简单的例子:
无参数,无返回值
有参数有返回值
2>定义Block变量的时候一般大家都是用typedef重定义,应用起来既方便看起来又很直观,例如上面两个例子可以如下书写:
3>Block变量在ARC和MRC环境下的生命周期
ARC环境下打印结果如下:
分析原因如下:
//1.分析,ARC如果在块对象中使用了__block指定的变量,那么这个变量将会被copy到堆内存中,并且原变量也会指向这个堆内存中的空间
//2.如果有两个块对象引用了同一个__block指定的变量,那么他们共享这个变量,共享同一个内存
MRC环境下打印结果如下:
分析原因如下: