[block copy]
执行后block();
,我应该设置block=nil
吗?或者 ARC 是否已经为我管理了这个,所以我不需要做任何事情?我对 ARC 如何在这里管理块引用有点困惑,我不确定将块设置为 nil 是否会破坏任何东西?
我有这样的东西。有什么想法吗?
typedef void (^C3Block)(void); // declare block, no return, no args
// set flag to get _previewImage, then call the block
- (void)takePreviewImageFromBufferWithBlock:(C3Block)block {
_takePreviewImageBlock = [block copy]; // save block ref for calling later
_shouldTakePreviewImageFromBuffer = YES;
}
- (void)gotPreviewImageFromBuffer {
_takePreviewImageBlock(); // calls the block
_takePreviewImageBlock = nil; // <---- should I do this???
}