相关疑难解决方法(0)

检查Objective-C块类型?

这主要是好奇心,我不确定这是什么实际用途,但这里有.

由于块也是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)

上面的代码可能不起作用.但是,如果它可以检查块的类型,什么是做了正确的方法是什么?

oop closures introspection objective-c objective-c-blocks

27
推荐指数
3
解决办法
7879
查看次数