这主要是好奇心,我不确定这是什么实际用途,但这里有.
由于块也是Objective-C对象,是否可以检查它们的类型?也就是说,它是否响应isKindOfClass:消息以及如何对块使用该消息?
我的天真认为它可能是这样的:
-(void) aMethod {
typedef int (^BlockA)(int x, int y);
id blockVar = ...; // get a block from somewhere
if([blockVar isKindOfClass:BlockA]) {
BlockA blockVarA = blockVar;
int result = blockVarA(1,2);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码可能不起作用.但是,如果它是可以检查块的类型,什么是做了正确的方法是什么?