如何调用 NSDictionary 中的块?
How to invoke block in NSDictionary?
NSMutableDictionary* actions = [[NSMutableDictionary alloc] init];
actions[@"run"] = ^ () {
NSLog(@"Hello");
};
actions[@"run"]();
Xcode 当我调用 NSDictionary 中的块时报告错误 Called object type 'id' is not a function or function pointer
。
如何调用存储在 NSDictionary 中的块?
您应该创建一个局部变量以将 id 转换为块类型。
void(^block)(void) = [actions objectForKey:@"run"];
if(block)
{
block();
}
只是转换的问题,试试冗长的版本:
(void) (^dictBlock)(void)) = actions[@"run"];
dictClock()
NSMutableDictionary* actions = [[NSMutableDictionary alloc] init];
actions[@"run"] = ^ () {
NSLog(@"Hello");
};
actions[@"run"]();
Xcode 当我调用 NSDictionary 中的块时报告错误 Called object type 'id' is not a function or function pointer
。
如何调用存储在 NSDictionary 中的块?
您应该创建一个局部变量以将 id 转换为块类型。
void(^block)(void) = [actions objectForKey:@"run"];
if(block)
{
block();
}
只是转换的问题,试试冗长的版本:
(void) (^dictBlock)(void)) = actions[@"run"];
dictClock()