Blocks编程要点

本文介绍了Block编程的概念,特点和用途。Block是C级别的一种语法和运行时特性,类似于函数但能绑定变量,常用于并发执行、回调和封装操作。在Objective-C、C++和C中都可使用。Block可以捕获作用域内的状态,作为API参数或回调函数,特别是能访问和修改局部变量,提供了编写简洁代码的方式。
摘要由CSDN通过智能技术生成

有关Block的语法和其特点,本来是自己在看官方文档并做翻译记录的,但是发现有些地方不能完全理解,而且这样的方式相对耗时。所以,我决定还是聪明点,以后看文档都是用民间翻译版和官方版对照来看,提高学习效率,也让自己对细节深入下去。


概要如下:


Block对象是C级别的语法和运行时特性。它们和标准C函数很类似,但是除了可执行代码外,它们还可能包含了变量自动绑定(栈)或内存托管(堆)。所以一个block维护一个状态集(数据),它们可以在执行的时候用来影响程序行为。 你可以用blocks来编写函数表达式,这些表达式可以作为API使用,或可选的存储,或被多个线程使用。Blocks作为回调特别有用,因为block携带了进行回调所需要的执行代码和执行过程中需要的数据。 Blocks在GCC和Clang里面可用,它附带在Mac OS X v10.6里面的Xcode 开发工具里面。你可以在Mac OS X v10.6及其之后,和iOS 4.0及其之后上面使用blocks。Blocks运行时是开源的,你可以在LLVM’s compiler-rt subproject repository(LLVM的RT编译器的子项目库)里面找到它。Blocks同样作为标准C工作组出现在N1370:Apple’s Extensions to C(该文档同样包括了垃圾回收机制)。因为Objective-C和C++都是从C发展而来,blocks被设计在三种语言上面使用(也包括Objective-C++)。(语法反应了这一目标)


2.1
Block功能
一个block就是一个匿名的内联代码集合体:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值