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

Posted

技术标签:

【中文标题】iPhone 上的 Objective-C - NSOperationQueue 和 NSInvocationOperation 的使用【英文标题】:Objective-C on iPhone - use of NSOperationQueue and NSInvocationOperation 【发布时间】:2012-03-01 10:48:43 【问题描述】:

我有一个 UITableViewController,我正在使用来自 Web 服务的数据进行填充。在下载数据时,我使用 NSInvocationOperation 和 NSOperationQueue 在后台线程上运行 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】:

是的,如果您分配了队列,您应该释放它。 dealloc 方法将是一个理想的地方。

【讨论】:

以上是关于iPhone 上的 Objective-C - NSOperationQueue 和 NSInvocationOperation 的使用的主要内容,如果未能解决你的问题,请参考以下文章

如何将 int 从 iPhone 发送到 Apple Watch 标签(objective-c)

iPhone Objective-C 套接字与 Socket.IO 通信 [关闭]

如何在 Objective-C 中获取当前工作目录的绝对路径?

iPhone Objective-C:使用导航控制器单击选项卡时禁用堆栈弹出

Objective-C 错误:属性“活动”是类“例程”上的标量类型。无法为其生成 getter 方法

objective-c 方法打开已安装的应用程序