什么是block?初学的时候,很难理解block在使用过程中的真正含义,对block执行的过程不甚了了。首先来看看block的定义。
1.定义:它是一种
C语言数据类型,
独立的代码块,在需要的时候执行,执行的时候当做函数,并且可以作为参数传递。 这种定义决定在它在IOS开发中占据着举足轻重的作用,主要用于控制器之间的传值给予了很大的方便,相比代理具有很强的优越性。
返回类型 void (^myBlock)( 参数列表) = ^(参数列表){
NSLog(@“");
};
调用 myBlock ();
2.blcok定义的速记符号 inlineblock,能够快速敲出一个block的基本结构
3.常见面试题目
1——>在定义block时,如果引用了外部变量,会对外部变量做一个copy,记住block时变量的数值如果后续修改变量的值,不影响block内部的数值的变化,默认情况下,不允许修改外部变量的数值。因为会破坏代码的可读性,不易于维护。如果需要在block中需要修改内部的值,需使用__blcok修饰。
4.block反向传值(视图控制器)
—需要传值 1. 定义一个block属性 2.调用block
—接受传值 1.保存代码块
—1.调用方:准备块代码
—2.被调用方:执行块代码
要执行的代码,在.h中定义一个块代码的属性,在需要的时候执行块代码