I get this error when trying to define and assign a block:

int (^bl)(int) = ^(int k)
{
[_self c2:k]; // incompatible block pointer types initializing 'int (^)(int)' with an expression of type 'void (^)(int)'
};
This is from a blocks tutorial:

What is going on?
Change the return type of
blfrominttovoid.If you look at the language specification for blocks you will see what’s going on:
In Apples example case the return type will be the type of
num * multiplierwhich isintmatching the return type of the block variablemyBlock.But in your case there is no
returnstatements so the return type will bevoidwhich does not match the return type of the block variablebl.