iOS之Block

1.Block

Block 一般又block pointer 和 block实体组成。

int (^ square) (int);//block pointer;声明block,

square = ^(int a) { return a*a;}//block 实体;

2.在objective C 中声明方法:

-(void) objcMethod :(int (^)(int)) square;

?为什么方法的返回值是void 而block 作为传入参数square的返回值是int,

同时 int (^ square) (int )这种声明方法和 (int (^) (int)) square也有一些区别。这是要特别注意的地方。

而在实现方法时,采用的是………^(int id){  主体};

比如在NSArray中的遍历方法

[test enumrateObjectsUsingBlock:^(id obj,NSInteger idx,BOOL * stop ) {主体;}];

3.存取可变变量和存取不可变变量

不可变变量:

  1. {  
  2.     int outA = 8;  
  3.     int (^myPtr)(int) = ^(int a){ return outA + a;};  
  4.     //block里面可以读取同一类型的outA的值  
  5.     int result = myPtr(3);  // result is 11  
  6.     NSLog(@"result=%d", result);  
  7. }  

可变变量:

  1. {  
  2.     static int outA = 8;  
  3.     int (^myPtr)(int) = ^(int a){return outA + a;};  
  4.     outA = 5;  
  5.     int result = myPtr(3);  //result的值是8,因为outA是static类型的变量  
  6.     NSLog(@"result=%d", result);  
  7.       
  8. }  
4.Block Variable 类型的变量_block;

_block int num;

作用同可变变量。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值