从C函数返回Objective-C块

Nic*_*ore 14 block objective-c

声明一个返回Objective-C块的C函数的语法是什么?可能吗?

我认为应该是这样的

(void (^)(void)) myFunctionReturningABlock();
Run Code Online (Sandbox Code Playgroud)

但那不会编译.

Jas*_*ien 16

您的函数的语法略有不正确.

据我了解,您应该将块定义为一种类型,您可以将其用作函数的返回类型,如下所示:

typedef void(^MyAwesomeBlock)(void);

MyAwesomeBlock blockFunction()
{
    MyAwesomeBlock block = ^{
        //some code;
    };

    return block;
}
Run Code Online (Sandbox Code Playgroud)