Как правильно освободить свойство очереди отправки GCD?

Я использую dispatch_queue, доступ к которому осуществляется через свойство его владельца, например:

@property (nonatomic, assign) dispatch_queue_t queue;

Обратите внимание на ключевое слово assign . Очередь используется на протяжении всего жизненного цикла объекта и, следовательно, принадлежит объекту. Я освобождаю очередь, когда освобождается объект-владелец:

-(void)dealloc
{
    dispatch_release(self.queue);
    self.queue = nil;
}

Как мне правильно выпустить это? Будет ли сработать использование сохранить / освободить ?

Что произойдет, если при вызове выпуска в очереди есть ожидающие / выполняющиеся данные?

19
задан Martin Wickman 1 April 2011 в 08:20
поделиться