后台网络电话 - iOS

Tej*_*udi 6 cocoa-touch asynchronous objective-c ios

我需要在后台实现将一些数据发布到Web服务器.只是为了澄清,通过"在后台",我的意思不是显示一个旋转的图标,并使用类似的数据发布到Web服务的正常方式AsyncTaskASIHTTPRequest[request startAsynchronous]方法.我需要维护一个数据队列,当用户在应用程序中工作时,线程可以异步地开始处理和发布到Web服务.

我正在寻找一些设计这样的队列的帮助,特别是在一些边缘情况下,例如用户接收呼叫,在帖子发生时退出应用程序,用户离开应用程序转到另一个,而帖子是发生之类的事情.你会如何处理这些案件?有没有可以推荐的源代码呢?

谢谢,
Teja.

Ben*_*her 3

我最近开始NSOperationQueue在自己的工作中使用它来控制后台网络请求。NSOperation处理后台(或前台,如果 UI 更新需要的话)线程上异步运行任务(例如网络操作)所需的大部分样板代码。

它还允许跨队列依赖;例如,我在应用程序中使用两个队列:

第一个在后台安排图像下载,一次最大并发数为 2。每个图像下载都有一个相应的完成处理程序(作为 ),NSBlockOperation该处理程序取决于图像下载的完成情况。这些操作位于 上[NSOperationQueue mainQueue],它在主线程上运行,允许它们更新 UI(具体来说,是相应的UIImageView)。

请注意,NSOperationNSOperationQueue不仅仅适用于网络请求,而是任何可以分为原子任务并并发调度的操作。

以下是 Apple 关于该主题的介绍文档。