使用dispatch_get_global_queue时,非ARC'd项目需要dispatch_release

Vod*_*nic 0 multithreading objective-c grand-central-dispatch ios

虽然使用GCD为后台线程创建的普通队列需要dispatch_release来释放对象的内存,但是由于取消分配全局队列可能会导致操作系统出现问题,因此需要完成获取全局队列的相同操作:是对于持有dispatch_get_global_queue获取的队列的引用的对象所需的dispatch_release,或者dispatch_source_cancel是否足够?

为了更深入地解决这个问题,我正在使用全局队列来设置计时器,让它们运行并触发一个事件,这个项目是非ARC'd的.

zne*_*eak 7

您没有创建对象,因此您不拥有它.因此,您不得发布它.

如果将它传递给将保留对它的引用的对象,则该对象dispatch_retain在获取它时应该是队列,并且dispatch_release在它完成时应该是它.