Я просто думал, так как вы можете рассматривать объекты Blocks как объекты, если я создаю два из них, а затем добавить их в NSArray, есть ли способ их выполнить из массива?Выполнение блоков из NSArray?
int (^Block_001)(void) = ^{ return 101; };
int (^Block_002)(void) = ^{ return 202; };
NSArray *array = [NSArray arrayWithObjects:Block_001, Block_002, nil];
EDIT: Обновление для ясности Per @ 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];
Хороший набор ответов .... Я видел название и надеялся на несколько простых точек реплики. Люди получили это довольно тщательно. :) – bbum
Просто быстрая точка, если вы не копируете/не отпускаете блок, будет в стеке ... Итак, если стек будет уничтожен, приложение рухнет правильно? – fzaziz