我在思考,既然可以将块视为对象,如果我创建了两个块并将它们添加到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];