我正在创建一个GCD调度队列来处理异步创建和保存新的托管对象。
首先,是否有必要将其创建为实例变量?假设我有一个(假设的)方法-newObjectWithProperties:
,我在本地用标签"com.myapp.coredata"
创建了队列。下次我调用-newObjectWithProperties:
并重新创建具有相同标签的队列时,但该队列上的前一个后台任务仍然不完整,该队列的本地“重新创建”是否对应于同一个实际队列?或者它会抛出异常?如果是后者,那么我假设队列需要一个类范围的实例变量。
假设需要ivar,应如何处理内存管理?我想我会在dispatch_queue_create()
中使用-init
,然后只需在dispatch_release()
中拨打-dealloc
?
答案 0 :(得分:0)
我做了类似的事情,但是我创建了一次队列,并在需要调度后台任务时随时重用该队列。队列在第一次需要时(不是在init中)创建并存储在ivar中,然后在dealloc中销毁。