如果我有dispatch_group
类属性:
@property (nonatomic, readonly) dispatch_group_t _serialGroup;
我有一个总是想要在小组完成时调用的块:
dispatch_group_notify(self._serialGroup, self._serialQueue, ^{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//...do some stuff...
});
});
我可以在dispatch_group_notify
启动时定义dispatch_group
,只要该组完成或每次向群组添加项目时都需要重新定义吗? / p>
答案 0 :(得分:4)
在调用API后第一次组变空时,dispatch_group_notify()
块只被提交一次到指定的队列(或者如果组已经为空,则立即提交)。
如果您想要再次调用通知块,则必须重新安装它(例如,作为通知块本身的一部分,但请注意,如果在重新安装时该组仍然为空,它将立即重新提交)。
答案 1 :(得分:0)
你必须通过调用dispatch_release()来自己释放它。所以你可以抓住它直到重复使用