我不知道如何不使用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();