block使用步骤:1)、2)、3)
int mian(){
//用__block修饰的变量的值可以在block代码被修改
__block int a = 10;
//1)定义一个block类型的变量myBlock,它的返回值是int类型,并且有两个int类型的参数
int (^myBlock)(int x,int y);
//2)给myBlock 变量赋值
myBlock = ^(int x,int y) {
//block变量中访问,block代码块外部的变量时,是将外部变量以const方式拷贝一份到block代码块的堆区,
//因此在block代码块内部不能修改外部变量的值;
//若非要修改则外部变量要用__block修饰,注意外部变量要是被__block修饰,
//则在整个程序中访问的都是block代码块中的那个变量
a = 100;//若外部变量a没有被__block修饰,则这句话会报错
NSLog(@"a = %d",a);//值为100
return x+y;
};
//注意外部变量要是被__block修饰,则在整个程序中访问的都是block代码块中的那个变量
NSLog(@"a = %d",a);//值为100
//3)调用myBlock变量
int sum = myBlock(3,4);
NSLog(@"sum = %d",sum);
block使用技巧:
使用inlineblock助记符可以快速创建一个block类型的变量
本文详细介绍了Block(块)在C或Objective-C中的使用方法,包括如何定义、赋值及调用Block。通过具体示例展示了如何利用__block关键字来实现Block内外变量值的修改。
2175

被折叠的 条评论
为什么被折叠?



