如何在block-c中传递block作为宏的参数?

jAc*_*OdE 6 objective-c-blocks

在我的代码中,我有很多代码,如:

if (block) block(....)
Run Code Online (Sandbox Code Playgroud)

所以我想定义一个宏,比如

#define safetyCall(block, ...) if((block)) {block(##__VA_ARGS__)};
Run Code Online (Sandbox Code Playgroud)

但我无法让它发挥作用.任何的想法?

tro*_*foe 6

你不需要移动##;需要:

#define safetyCall(block, ...) if((block)) { block(__VA_ARGS__); }
Run Code Online (Sandbox Code Playgroud)