iOS __block类型变量作用域

看下图

在c语言中,2个独立的函数是不可能互相访问局部变量的,但是__block提供了这个功能,它不单单能读变量,还可以对变量进行写!上图说明,block获得了i最后的真实值5,没有只取得0,这都是"__block"的作用。再看j,由于没有__block前缀,只取得了0,没有获得5。__block的作用简单的说,就是软copy了一份副本到heap中,并维护这个副本的生存,所以可以使用已经结束了的函数中的局部变量,不使用硬拷贝,也就同名变量指向的地址不会变化。

原文地址:https://www.cnblogs.com/breezemist/p/3701903.html