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:
[array addObject:block];
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With