Objective-C на iPhone — использование NSOperationQueue и NSInvocationOperation

У меня есть UITableViewController, который я заполняю данными из веб-службы. Пока данные загружаются, я использую NSInvocationOperation с NSOperationQueue для запуска вызова веб-службы в фоновом потоке, отображая индикатор выполнения в пользовательском интерфейсе. Все это работает нормально, но я просто хочу убедиться, что правильно обрабатываю объекты. Мой код выглядит следующим образом:

NSOperationQueue *backgroundTaskQueue = [[NSOperationQueue alloc] init];
NSInvocationOperation *webServiceOp = [[NSInvocationOperation alloc]
                                        initWithTarget:self
                                        selector:@selector(loadListDataOperation)
                                        object:nil];
[backgroundTaskQueue addOperation:webServiceOp];
[webServiceOp release];

Мои знания в области управления памятью говорят мне, что в какой-то момент я должен освободить backgroundTaskQueue, но не уверен, где — это должно быть просто в методе Dealloc () UITableViewController?

Любая помощь приветствуется,

Джонатан


person Jonathan Wareham    schedule 01.03.2012    source источник


Ответы (1)


Да, вы должны освободить очередь, если вы ее выделили. Метод dealloc был бы идеальным местом для этого.

person Alexander    schedule 01.03.2012