Это «блок», новая функция, которую Apple добавила в C в Snow Leopard. Дополнительная информация доступна по адресу:
Блокировать объекты
Блокировать объекты (неофициально, « блоки ») являются расширением C, а также Objective-C и C ++, которые позволяют программистам легко определять автономные единицы работы. Блоки похожи на традиционные указатели на функции, но намного мощнее. Ключевые отличия:
Блоки могут быть определены встроенными как «анонимные функции». Блоки захватывают копии локальных переменных, доступные только для чтения, аналогично «замыканиям» в других языках. Это своего рода функциональность, обычная для интерпретируемых языков с динамической типизацией, но никогда прежде не была широко доступна для программистов на C. Apple опубликовала спецификацию языков блоков и нашу реализацию с открытым исходным кодом по лицензии MIT, добавила поддержку блоков в GCC 4.2 и clang и представила ее на рассмотрение как часть следующей версии языка программирования C.
Синтаксис
Блочная переменная выглядит как указатель на функцию, за исключением символа вставки («^») вместо звездочки («*»).
void (^my_block)(void);
И код для этой конкретной функции будет выглядеть примерно так:
[[UIApplication sharedApplication] setKeepAliveTimeout:5.0 handler:^{
NSLog( @"This is my timeout handler" );
}];
Это означает, что требуется блок (кода, также известный как закрытие) см. http://developer.apple.com/mac/articles/cocoa/introblocksgcd.html Это нововведение в objective-c для OSX 10.6 и iOS 4