这个问题参考了这个问题:如何使用块简化回调逻辑?
我的头文件有这些typedefs。
在init中。
在这篇论文中,它说Block_copy是不必要的。但随后需要一个桥接转换。 编译器信息如下:
typedef void (^StuffDoneBlock)(NSDictionary * parsedData);
typedef void (^StuffFailedBlock)(NSError * error);
在init中。
stuffDoneCallback = Block_copy(done);
StuffFailedCallback = Block_copy(error);
在这篇论文中,它说Block_copy是不必要的。但随后需要一个桥接转换。 编译器信息如下:
error: cast of block pointer type 'StuffDoneBlock' (aka 'void (^)(NSDictionary *__strong)') to C pointer type 'const void *' requires a bridged cast [4]
stuffDoneCallback = _bridge(Block_copy(done));
^~~~~~~~~~~~~~~~
/Developer-4.2/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/include/Block.h:60:61: note: instantiated from:
#define Block_copy(...) ((__typeof(__VA_ARGS__))_Block_copy((const void *)(__VA_ARGS__)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~