关于Block的理解

  代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。

  而且在iOS4之后,很多API都加入了Block作为参数适用,比如NSURLSessionDataTask中的complationHandler参数就是一个带有传入参数的block参数。

  block和一般的函数写法上区别不大,跟像是C/C++的函数写法,但唯一需要注意的是,在代码块外声明的变量,在block内是无法改变的,若想改变,必须加上  __block  修饰。

  有关block的作用域,当遇到类似的问题之后再更新。

posted @ 2016-03-20 23:11  Thkeer  阅读(200)  评论(0编辑  收藏  举报