我知道这很奇怪而且很少使用,但只是我的好奇心,如何使用或不使用类型定义来做这个?
答案 0 :(得分:-1)
我尝试了以下代码并获得了预期的输出。
@import Foundation;
void moo(dispatch_block_t *cow) {
*cow = [^{ NSLog(@"Cow!"); } copy];
}
int main(int argc, char **argv)
{
dispatch_block_t cow;
moo(&cow);
cow();
return 0;
}
2015-11-04 09:03:06.829 a.out[50203:2157730] Cow!
块的副本是为了确保您不设置对方法/函数返回时可能变为无效的堆栈对象的引用。