I find in Apple\'s document Working with Blocks that the syntax to define a block that returns the result of multiplying two values:
double (^multiplyTwoValu
Obj-C block syntax is pretty hard to read, this can be simplified a bit with the use of typedefs.
//setup
typedef void (^ReturnedBlock)(void);
ReturnedBlock retBlock = ^void(void){};
typedef void (^ParamBlock)(void);
ParamBlock paramBlock = ^void(void){};
//the thing you want to do
ReturnedBlock (^someBlock)(ParamBlock) = ^ReturnedBlock(ParamBlock param){
return retBlock;
};
//perform the block
ReturnedBlock r = someBlock(paramBlock);