当把外部声明的变量成块......性能差异通过__block捕捉块外部变量VS那不
使用__block
指令捕捉引用变量...
变量本地用__block存储修饰符声明的封闭词法范围由引用提供,因此是可变的。 任何更改都会反映在封闭的词法范围内,包括在同一个封闭词法范围内定义的任何其他块。
没有变量由值而拍摄...
块的词法范围内声明的局部变量,这完全一样的功能,局部变量。 块的每次调用都会提供该变量的新副本。这些变量可以反过来用作块内封闭块的const或by-reference变量。
我听说过使用__block的效率较低,但这怎么可能?你不会总是避免昂贵的副本吗?
相关:[块如何捕获其封闭范围之外的变量?](https://stackoverflow.com/questions/17813870/how-does-a-block-capture-the-variables-outside-of - 封闭范围/ 17819142#17819142) –