Objective-C块block介绍

块的定义

//[返回值类型](形参类型 形参1,形参类型 形参2····) {
        //块执行体
    //}

以上是一个块的写法
1.返回值类型可以省略,形参也可以参略,但是形参的括号不能参略

^(){
NSLog(@"123");
}

通常我们需要反复调用块,因为块相当于一个匿名的函数,我们调用它时可以先定一个块变量

返回值类型(^块变量名)(形参名,形参名···)
//将块赋给块变量
void(^text)(int, int) = ^(int a, int b) {
NSLog(@"%d",a)
}
//调用块
text(2,3);

###块与局部变量
1.块不可以修改局部变量的值
2.块定义时会捕获局部变量的值

int b = 2;
void(^text)(void) = ^(void) {
NSLog(@"%d",b)
}
//调用块
b = 3;
text();
//此时打印b的值仍然是2

块只在定义时捕获局部变量的值。
###块作为方法参数

// 1.定义一个形参为Block的OC函数
- (void)useBlockForOC:(int(^)(int, int))aBlock
{
    NSLog(@"result = %d", aBlock(300,200));
}

// 2.声明并赋值定义一个Block变量
int(^addBlock)(int, int) = ^(int x, int y){
    return x+y;
};

// 3.以Block作为函数参数,把Block像对象一样传递
[self useBlockForOC:addBlock];

// 将第2点和第3点合并一起,以内联定义的Block作为函数参数
[self useBlockForOC:^(int x, int y){
    return x+y;
}];

先写到这里,知识有限

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值