我不明白如何在不使用typedef的情况下做到这一点:
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的正确返回类型是什么?
谢谢! 杰米
答案 0 :(得分:9)
这是没有typedef的语法,但我认为它是如此难以理解,因此强烈推荐typedef:
void(^(^genBlock)(int))() = ^(int tryCount){
void (^b1)() = ^{
NSLog(@"tryCount=%i", tryCount);
};
return b1;
};
void(^aBlock)() = genBlock(10);
aBlock();