黑马程序员-block使用细节

本文详细介绍了Block(块)在C或Objective-C中的使用方法,包括如何定义、赋值及调用Block。通过具体示例展示了如何利用__block关键字来实现Block内外变量值的修改。
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类型的变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值