Jakobs Antwort ist gut, aber das Teil zu beantworten, „wie diese anders als ein Funktionszeiger ist?“:
1) Ein Block ist nicht eine Funktion Zeiger. Blöcke sind Apples Ansatz, um in C/C++/Objective-C Funktionen für erstklassige Bürger zu machen. Es ist neu für iOS 4.0.
2) Warum dieses seltsame Konzept einführen? Stellt sich heraus, First-Class-Funktionen sind nützlich in einigen Szenarien, zum Beispiel die Verwaltung von Teilen der Arbeit, die parallel ausgeführt werden können, wie in Grand Central Dispatch. Jenseits von GCD ist die Theorie wichtig genug, dass ganze Softwaresysteme darauf basieren. Lisp war einer der ersten.
3) Sie werden dieses Konzept in vielen anderen Sprachen sehen, aber unter verschiedenen Namen. Zum Beispiel hat Microsoft .Net Lambdas und Delegates (keine Beziehung zu Objective-C-Delegaten), während die allgemeinsten Namen wahrscheinlich anonyme Funktionen sind oder first class functions.
Vielen Dank Jacob! Jetzt habe ich Tutorials zu Blocks gefunden und ein bisschen mehr gelernt) – wh1t3cat1k