学会使用Block编程

本文介绍了Block的概念,它类似于C中的函数指针,但能捕获和修改词法范围内的状态。Block常用于并发任务、遍历和回调。文章详细讲解了Block的声明、调用方式,并通过一个编程实例展示了Block实现回调的功能,提供了Demo下载链接和相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Block是什么?

Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,可以看成一个语句块或者更多时候看成一个匿名函数。

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations NS_AVAILABLE_IOS(4_0);
[ UIView animateWithDuration:10 animations:^{  
       NSLog(@"%@,",@"block");  
    }]; 
2.Block在什么情况下使用?

Block除了能够定义参数列表、返回类型外,还能够获取被定义时的词法范围内的状态(比如局部变量),并且在一定条件下(比如使用__block变量)能够修改这些状态。此外,这些可修改的状态在相同词法范围内的多个block之间是共享的,即便出了该词法范围(比如栈展开,出了作用域),仍可以继续共享或者修改这些状态。通常来说,block都是一些简短代码片段的封装,适用作工作单元,通常用来做并发任务、遍历、以及回调。

3.Block如何申明?(对比于c语言中的函数申明)

这里写图片描述

4.如何调用Block?(类比于函数指针)
 int (*CFunc) (int a) //函数调用 
 int result = CFunc(10); 
 int (^BFunc) (int  a)  //Block调用 
 int result = BFunc(10); 
5.Block编程实例(实现回调)
#import <UIKit/UIKit.h>
/**
 *  点击按钮的回调
 *
 *  @param<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铸剑先生100

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值