<分区>
<分区>
Possible Duplicate:
Obj-C: __block variables
在 block 编程中如何使用 block 作为参数
NSArray *(^blockreturnarray) (NSArray *);
blockreturnarray= ^(NSArray * a)
{
NSLog(@"%@",a);
return a;
};
blockreturnarray(array1);
在简单的我的问题中,我创建了一个 block ,还创建了另一个 block 那么如何在一个 block 中传递参数 Block。
最佳答案
这可能会变得毛茸茸,所以我会使用 typedef,它可能看起来像这样
typedef void (^basicBlock)(void);
typedef void (^blockAcceptingBlock)(basicBlock);
然后
basicBlock block = ^ {
NSLog(@"Called from block passed as param");
};
blockAcceptingBlock parentBlock = ^(basicBlock childBlock) {
childBlock();
};
parentBlock(block);
如果没有 typedef,它在所有圆括号的定义中会有点嘈杂(请记住,这些是简单的 block ,因此显示的 def 仍然相当可读)
void (^block)(void) = ^ {
NSLog(@"Called from block passed as param");
};
void (^parentBlock)(void (^childBlock)(void)) = ^(void (^childBlock)(void)) {
childBlock();
};
parentBlock(block);
双输出
#=> 2012-04-27 11:39:12.798 Untitled[19725:707] Called from block passed as param
关于objective-c - 如何使用 block 作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10348514/