【发布时间】:2012-06-06 21:09:16
【问题描述】:
如果不使用 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 的正确返回类型是什么?
谢谢! 杰米
【问题讨论】:
-
除非您在 ARC 中,否则您需要在返回时复制该块。
-
@KevinBallard 当然,但我希望我的要求仍然应该很清楚。
-
请注意,
dispatch_block_t已经是void (^)(void)的类型定义。 -
@KenThomases,很好的观点,而且很容易理解。
标签: objective-c objective-c-blocks