我正在阅读关于"调度队列的内存管理"的苹果文档:
即使您实现了垃圾收集的应用程序,您仍必须保留并释放调度队列和其他调度对象.Grand Central Dispatch不支持回收内存的垃圾收集模型.
我知道ARC不是垃圾收集器,但我想确定我不需要dispatch_retain和dispatch_release我的dispatch_queue_t
我使用我的视图控制器将调度队列维护为属性.我在视图控制器的init方法中创建了一次此队列,并重复使用了几次后台任务.在ARC之前,我这样做:
@property (nonatomic, assign) dispatch_queue_t filterMainQueue;
Run Code Online (Sandbox Code Playgroud)
在init中:
if (filterMainQueue == nil) {
filterMainQueue = dispatch_queue_create("com.myQueue.CJFilterMainQueue", NULL);
}
Run Code Online (Sandbox Code Playgroud)
但是在ARC之后,我不确定这应该仍然是"分配",还是应该是"强"还是"弱".ARC转换器脚本没有改变任何东西,但我不确定一个微妙的错误是否来自这个队列在被使用时可能被解除分配的事实?
使用ARC时,3种类型的属性和调度队列最适合的是什么?