Подтвердить что ты не робот

Возвращает Objective-C блок из функции C

Каков синтаксис объявления функции C, возвращающей блок Objective-C? Возможно ли это?

Я думал, что это должно быть что-то вроде

(void (^)(void)) myFunctionReturningABlock();

но это не будет компилироваться.

4b9b3361

Ответ 1

Синтаксис вашей функции несколько неверен.

Как я понимаю, вы должны определить свой блок как тип, который вы можете использовать в качестве возвращаемого типа для своей функции следующим образом:

typedef void(^MyAwesomeBlock)(void);

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

    return block;
}