Уничтожить элементы в очереди dispatch_async в iOS

Я запускаю кучу элементов в фоновом режиме с помощью dispatch_async, и иногда я хочу убить то, что у меня есть в очереди — возможно ли это? Например, этот код запускается в представлении, а затем пользователь возвращается на один экран назад. Все эти запущенные действия продолжают выполняться независимо от возврата назад. В идеале я хотел бы остановить запуск этих элементов:

dispatch_async(dispatch_get_global_queue(2, 0), ^{
        for (int i=0; i<[self.manufacturers count]; i++) {
            NSString *manufacturerID = [[[self.manufacturers objectAtIndex:i] ManufacturerID] stringValue];
            [self doSync:manufacturerID withIndex:i setTimer:YES];
        }
    });

Если я создам очередь и назову ее, а затем отпущу ее в деаллоке представления, в котором это вызывается, они все равно продолжат работать.

10
задан Slee 3 March 2012 в 13:11
поделиться