O que exatamente significa a __block
palavra-chave em Objective-C? Eu sei que permite modificar variáveis dentro de blocos, mas eu gostaria de saber ...
- O que exatamente isso diz ao compilador?
- Faz mais alguma coisa?
- Se isso é tudo o que faz, por que é necessário em primeiro lugar?
- Está nos documentos em algum lugar? (Não consigo encontrar).
__block
nada.
__block
devem ser traduzidos para Swift: ”Os fechamentos [no Swift] têm semânticas de captura semelhantes aos blocos [no Objective-C], mas diferem de uma maneira importante: as variáveis são mais mutáveis do que copiadas. Em outras palavras, o comportamento de __block no Objective-C é o comportamento padrão para variáveis no Swift. ” Do livro da Apple: Usando Swift com cacau e Objective-C (Swift 2.2).