====== Programmation iOS par bloc ======
La programmation de blocs iOS est comparable aux fonctions anonymes telles qu'on les trouve en Javascript, ou encore aux lambdas en Python. À ce sujet, si vous programmez en Python, un [[http://sametmax.com/fonctions-anonymes-en-python-ou-lambda/|excellent article]] à lire indispensablement (oui, Môssieur, ce mot est laid mais français).
===== Déclaration =====
La déclaration n'est pas obligatoire. Le bloc peut être écrit inline et ne nécessite dans ce cas aucune déclaration préalable.
// Un peu de code d'exemple
Si la fonction doit être déclarée, la syntaxe est relativement simple. L'utilisation du symbole ^ permet de matérialiser un bloc. Le code suivant déclare un bloc nommé "unBlock", qui prend en paramètre un int*, un int et un flot et renvoie un NSString.
NSString (^unBlock)(const int*, int, float);
===== Implémentation =====
==== Avec déclaration ====
* L'opérateur ^ est utilisé pour déclarer une variable de type bloc et pour introduire le code correspondant.
int (^multiplieParTrois)(int) = ^(int num)
{
return num * 3;
};
==== Sans déclaration ====
Le cas le plus fréquent.
printf("%d", multiplieParTrois(3)); // Affichera "9"