我在使用块(Block)中BOOL
返回类型时遇到了一个奇怪的问题。定义如下:
typedef BOOL (^BoolBlock)(void);
...这段代码通过测试:
BoolBlock foo = ^{ return YES; };
...但是这个无法编译:
BoolBlock bar = ^{ return YES || NO; };
使用以下错误消息:
不兼容的块指针类型初始化'BoolBlock'(即'BOOL(^) (void)'),使用'type 'int (^) (void)'的表达式
我可以通过使用显式转换来解决此问题,但是不需要这样做吗?是否有更好的解决方案?
^BOOL () {…}
很满意。 - zoul