Что именно означает __block
ключевое слово в Objective-C? Я знаю, что это позволяет вам изменять переменные внутри блоков, но я хотел бы знать ...
- Что именно он говорит компилятору?
- Это делает что-нибудь еще?
- Если это все, что нужно, то зачем это нужно?
- Это где-нибудь в документах? (Я не могу найти это).
__block
.
__block
должен переводиться в Swift: «Замыкания [в Swift] имеют семантику захвата, аналогичную блокам [в Objective-C], но отличаются одним ключевым способом: переменные изменяются, а не копируются. Другими словами, поведение __block в Objective-C является поведением по умолчанию для переменных в Swift ». Из книги Apple: использование Swift с какао и Objective-C (Swift 2.2).