GCD dispatch_queue_t为ivar - 内存管理?

时间:2011-06-26 21:07:12

标签: ios queue grand-central-dispatch

我正在创建一个GCD调度队列来处理异步创建和保存新的托管对象。

首先,是否有必要将其创建为实例变量?假设我有一个(假设的)方法-newObjectWithProperties:,我在本地用标签"com.myapp.coredata"创建了队列。下次我调用-newObjectWithProperties:并重新创建具有相同标签的队列时,但该队列上的前一个后台任务仍然不完整,该队列的本地“重新创建”是否对应于同一个实际队列?或者它会抛出异常?如果是后者,那么我假设队列需要一个类范围的实例变量。

假设需要ivar,应如何处理内存管理?我想我会在dispatch_queue_create()中使用-init,然后只需在dispatch_release()中拨打-dealloc

1 个答案:

答案 0 :(得分:0)

我做了类似的事情,但是我创建了一次队列,并在需要调度后台任务时随时重用该队列。队列在第一次需要时(不是在init中)创建并存储在ivar中,然后在dealloc中销毁。