iOS Modifier la variable capturée


Exemple

Block capturera les variables apparaissant dans la même portée lexicale. Normalement, ces variables sont capturées en tant que "const" valeur:

int val = 10;
void (^blk)(void) = ^{
    val = 20; // Error! val is a constant value and cannot be modified!
};

Pour modifier la variable, vous devez utiliser le modificateur de type de stockage __block.

__block int val = 10;
void (^blk)(void) = ^{
    val = 20; // Correct! val now can be modified as an ordinary variable.
};