¿Qué significa exactamente la __block
palabra clave en Objective-C? Sé que te permite modificar variables dentro de bloques, pero me gustaría saber ...
- ¿Qué le dice exactamente al compilador?
- ¿Hace algo más?
- Si eso es todo lo que hace, ¿por qué es necesario en primer lugar?
- ¿Está en los documentos en alguna parte? (No puedo encontrarlo).
__block
en absoluto.
__block
deberían traducirse a Swift: "Los cierres [en Swift] tienen una semántica de captura similar a los bloques [en Objective-C] pero difieren en una forma clave: las variables son mutables en lugar de copiadas. En otras palabras, el comportamiento de __block en Objective-C es el comportamiento predeterminado para las variables en Swift ". Del libro de Apple: Uso de Swift con Cocoa y Objective-C (Swift 2.2).