Co dokładnie oznacza __block
słowo kluczowe w celu C? Wiem, że pozwala modyfikować zmienne w blokach, ale chciałbym wiedzieć ...
- Co dokładnie mówi kompilatorowi?
- Czy robi coś jeszcze?
- Jeśli to wszystko, co robi, to dlaczego jest potrzebne?
- Czy jest to gdzieś w dokumentacji? (Nie mogę tego znaleźć).
__block
.
__block
powinien się przełożyć na Swift: ”Zamknięcia [w Swift] mają podobną semantykę przechwytywania jak bloki [w Celu C], ale różnią się w jeden kluczowy sposób: Zmienne można modyfikować, a nie kopiować. Innymi słowy, zachowanie __block w Objective-C jest domyślnym zachowaniem zmiennych w Swift. ” Z książki Apple: Używanie Swift z kakao i Objective-C (Swift 2.2).