block 简单理解

来源:互联网 发布:mac安装win8.1 驱动 编辑:程序博客网 时间:2024/06/01 08:11


传值方式


int multiplier = 7 ;

int (^myBlock)( int ) = ^( int num)

{

return num * multiplier;

};

printf ( "%d" , myBlock( 3 ));

//结果会打印出21
.1.3 __block 变量一般来说,在block内只能读取在同一个作用域的变数而且没有办法修改在block外定义的任何变数,此时若我们想要这些变数能够在block中被修改,就必须在前面挂上__block的修饰词,以上面第一个例子中的 multiplier 来说,这个变数在 block 中是唯读的,所以 multiplier = 7 指定完后,在 block 中的 multiplier 就只能是 7 不能修改,若我们在 block 中修改 multiplier ,在编辑时就会产生错误,因此若想要在 block 中修改 multiplier ,就必须在 multiplier 前面加上 __block 的修饰词
Block 提供我们一种能够将函数程式码内嵌在一般述句中的方法,在其他语言中也有类似的概念称做「closure」,但是为了配合Objective-C的贯例,我们一律将这种用法称为「block」
0 0
原创粉丝点击