Objective c 如何声明命名的嵌套块参数?

Objective c 如何声明命名的嵌套块参数?,objective-c,objective-c-blocks,Objective C,Objective C Blocks,我目前有以下几项工作正在进行: typedef BOOL(^InnerBlockType)(int arg1, int arg2); - (BOOL)doStuff:(void(^)(InnerBlockType innerBlock))block; 但是我想删除typedef并使块内联,这样参数在自动完成后是可见的,从而更易于使用。不过,我不能理解正确的语法。我可以得到99%,但不包括给块命名。当我插入一个标识符时,Xcode告诉我它需要一个) 我尝试过将innerBlock标识符移入和移

我目前有以下几项工作正在进行:

typedef BOOL(^InnerBlockType)(int arg1, int arg2);

- (BOOL)doStuff:(void(^)(InnerBlockType innerBlock))block;
但是我想删除typedef并使块内联,这样参数在自动完成后是可见的,从而更易于使用。不过,我不能理解正确的语法。我可以得到99%,但不包括给块命名。当我插入一个标识符时,Xcode告诉我它需要一个

我尝试过将
innerBlock
标识符移入和移出所有其他不同的括号组合,但我得到了相同的错误。在哪里可以插入满足编译器要求的
innerBlock
标识符?

删除名称:

- (BOOL)doStuff:(void(^)(BOOL(^)(int arg1, int arg2)))block;
或者像插入传统命名块一样插入它:

- (BOOL)doStuff:(void(^)(BOOL(^innerBlock)(int arg1, int arg2)))block;
尽管如此,我还是注意到autocomplete给了我一段艰难的时光,它似乎并没有很好地适应。结果如下:

[self doStuff:^(BOOL (^innerBlockType)(int arg1, int arg2)) {
    //
}];

我们在同一时间输入答案!一些额外的挖掘发现了你提供的第二个。我现在删除了我的。谢谢同意,自动完成很时髦。我向苹果公司报告了此事。
[self doStuff:^(BOOL (^innerBlockType)(int arg1, int arg2)) {
    //
}];