Objective-C块类型作为返回值

Objective-C块类型作为返回值,objective-c,objective-c-blocks,Objective C,Objective C Blocks,如何编写以下内容: typedef void (^T)(void); T f() { return ^{}; } 没有typedef void (^f())(void) { return ^{}; } 您最好保留typedef,因为此表单中的返回类型不容易理解。这种奇怪的原因是什么?函数参数在返回类型中?

如何编写以下内容:

typedef void (^T)(void);
T f() {
    return ^{};
}
没有typedef

void (^f())(void) { 
  return ^{};
}

您最好保留typedef,因为此表单中的返回类型不容易理解。

这种奇怪的原因是什么?函数参数在返回类型中?