块和参数保留

时间:2014-09-17 03:40:44

标签: ios objective-c-blocks grand-central-dispatch

传递到队列中的参数中的保留策略是什么?

您有以下内容:

- (void)doSomethingWithDictionary:(NSDictionary *)dictionary {
// Do some stuff here
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
   // If I use the dictionary parameter in the queue, what's the retain cycle on in it with arc? 
});
}

1 个答案:

答案 0 :(得分:0)

该块将保留其中引用的所有对象,但这不应该是一个问题,因为它只是您正在调度而不是保留自己的GCD块。如果这个块被一个也在其中引用的对象保留,那么就会有一个保留周期,这在这里没有发生,因为你根本没有保留这个块。