Storing a block in a collection
Is it possible to directly store a block in a collection such as NSArray?
Yes, blocks are valid Objective-C objects, following all the conventions of NSObject. Just do the copy/autorelease dance:
[array addObject:[[block copy] autorelease]];
For ARC - omit the copy and autorelease calls:
Can't figure out how to respond in the comment thread on Eimantas' answer, but -copy is necessary because the block may have been created on the stack. See 2) in bbum's post on the topic.