Я просто думал, так как вы можете рассматривать Blocks как объекты, если я создаю два из них, а затем добавьте их в NSArray, есть ли способ их выполнить из массива?
int (^Block_001)(void) = ^{ return 101; };
int (^Block_002)(void) = ^{ return 202; };
NSArray *array = [NSArray arrayWithObjects:Block_001, Block_002, nil];
РЕДАКТИРОВАТЬ: обновление для ясности. На @davedelong отличный ответ
int (^Block_001)(void) = [^{ return 101; } copy];
int (^Block_002)(void) = [^{ return 202; } copy];
NSArray *array = [NSArray arrayWithObjects:Block_001, Block_002, nil];
[Block_001 release];
[Block_002 release];