OC学习那些事:Block

1.Block

Block封装了一段代码,可以在任何时候执行

Block可以作为函数的参数,或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针类似,但是有区别:block是inline(内联函数)的,并且默认情况下它对具备变量是可读的。

苹果官方建议尽量多用block。在多线程、异步任务、集合遍历、集合排序、动画转场的很多

2.Block的使用

方法一

1.定义block,这个block相当于函数

//返回类型(^Block名称)(参数) 
int (^Sum) (int, int) = ^(int a,int b){ 
    return a + b; 
}; 

2.调用代码块

int a = Sum(10,11); 
NSLog(@"%i",a); 

方法二

1.定义一个block类型

typedef int (^MySum) (int, int); 

2.声明了一个block变量

//使用__block关键字,可以使block改变该变量 
__block int c = 15; 
MySum sum = ^(int a,int b) 
{ 
    //可以访问局部变量,但是默认情况下,不可以修改 
    c = 19; 
    NSLog(@"c is %i",c); 
    return a+b; 
}; 
NSLog("%i",sum(10,10)); 

3.Block的注意

Block可以访问局部变量,但是默认情况下不能修该

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值