返回不带 typedef 的块



我不知道如何不使用typedefs来做到这一点:


typedef void(^HLBlock)(void);
- (void)whatever
{
    HLBlock (^genBlock)(int) = ^(int tryCount){
        HLBlock b1 = [[^{
            NSLog(@"tryCount=%i", tryCount);
        } copy] autorelease];
        return b1;
    };
    genBlock(10);
}

我需要将HLBlock声明为void(^)(void)的typedef似乎很愚蠢,但是对于我的生活,我无法弄清楚如果没有typedef如何做到这一点。 genBlock 的正确返回类型是什么?

谢谢!杰米

这是没有typedefs的语法,但我认为它是如此不可读,以至于强烈首选typedef:

void(^(^genBlock)(int))() = ^(int tryCount){
  void (^b1)() = ^{
    NSLog(@"tryCount=%i", tryCount);
  };
  return b1;
};
void(^aBlock)() = genBlock(10);
aBlock();

最新更新