NSMutableDictionary* actions = [[NSMutableDictionary alloc] init];
actions[@"run"] = ^ () {
NSLog(@"Hello");
};
actions[@"run"]();
Xcode reports the error Called object type 'id' is not a function or function pointer
when I invoke the block in NSDictionary.
How I can invoke block stored in NSDictionary?
You should create a local variable to cast id to block type.
void(^block)(void) = [actions objectForKey:@"run"];
if(block)
{
block();
}