iPhone上的Objective-C - 使用NSOperationQueue和NSInvocationOperation

时间:2012-03-01 10:48:44

标签: objective-c uitableview release nsoperation nsoperationqueue

我有一个UITableViewController,我正在填充来自Web服务的数据。在下载数据时,我正在使用带有NSOperationQueue的NSInvocationOperation在后台线程上运行Web服务调用,同时在UI上显示进度指示器。这一切都很好,但我只是想确保我正确处理对象。我的代码如下:

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

我的内存管理知识告诉我,我应该在某个时候发布backgroundTaskQueue但不确定在哪里 - 它应该只是在UITableViewController的dealloc()方法中吗?

任何帮助表示赞赏,

乔纳森

1 个答案:

答案 0 :(得分:0)

是的,如果你分配了队列,你应该释放队列。 dealloc方法是理想的选择。