是的,你需要复制.不是因为它们是
自动释放的,而是因为它们从堆栈开始.请注意,块也像常规Objective-C对象一样运行,以便您可以使用常规复制消息来复制它们:
void storeBlockForLater: (dispatch_block_t) block
{
[someArray addobject:[[block copy] autorelease]];
}
或者,如果你有一个块属性:
@property(copy) dispatch_block_t block;
保留在这里没有帮助.