我有一个对象,它在初始化时使用和在释放调用时创建一个串行GCD 队列。在对象的生命周期中,调度块被添加到队列中,但是队列也使用and停止和启动。dispatch_queue_create
dispatch_free
dispatch_suspend
dispatch_resume
我的问题是,在某一时刻,对象可能会被释放,并且在释放时,为了整洁,我想完全删除调度队列和其中的所有dispatch_block_t
对象,无论队列是否被挂起。
据我了解,队列在不再“需要”之前不会解除分配,因为它不再被其中的调度块保留。这使我相信,要释放队列,我必须通过允许其中的块首先执行终止来清空它。
解决此问题的最简单和最可靠的方法是什么?