代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。
而且在iOS4之后,很多API都加入了Block作为参数适用,比如NSURLSessionDataTask中的complationHandler参数就是一个带有传入参数的block参数。
block和一般的函数写法上区别不大,跟像是C/C++的函数写法,但唯一需要注意的是,在代码块外声明的变量,在block内是无法改变的,若想改变,必须加上 __block 修饰。
有关block的作用域,当遇到类似的问题之后再更新。
时间: 2024-10-17 02:59:25