Objective-C怎么以参数形式传递block?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

我怎么能通过Function/ Method传递一个block?

我尝试- (void)someFunc:(__Block)someBlock无济于事。

提问于
用户回答回答于

block的类型取决于其参数和返回类型。在一般情况下,block类型的声明方式与函数指针类型相同,但用*a 替换^。将block传递给方法的一种方法如下所示:

- (void)iterateWidgets:(void (^)(id, int))iteratorBlock;

但正如看到的那样,这很混乱。可以改为typedef

typedef void (^ IteratorBlock)(id, int);

然后将该block传递给如下所示的方法:

- (void)iterateWidgets:(IteratorBlock)iteratorBlock;
用户回答回答于

这可能会有所帮助:

- (void)someFunc:(void(^)(void))someBlock;

扫码关注云+社区