Для большинства блоков итераций сигнатуры определены примерно так:
void(^)(id obj, BOOL* stop)
Лучше использовать возвращаемое значение для флага остановки.
BOOL(^)(id obj)
Однако я считают, что есть веская причина, побудившая их использовать текущую форму вместо более короткой и удобной. Почему они используют аргумент для флага остановки?