gpt4 book ai didi

objective-c - 后台网络调用 - iOS

转载 作者:可可西里 更新时间:2023-11-01 03:55:29 24 4
gpt4 key购买 nike

我需要在后台将一些数据发布到网络服务器。澄清一下,“在后台”,我指的不是显示旋转图标和使用 AsyncTask 之类的东西将数据发布到 Web 服务的正常方式。或 ASIHTTPRequest[request startAsynchronous]方法。我需要维护一个数据队列,当用户在应用程序中工作时,线程可以异步地开始处理并发布到 Web 服务。

我正在寻找一些关于设计这样的队列的帮助,特别是在某些边缘情况下,例如用户接听电话,在发布时注销应用程序,用户离开应用程序以转到另一个应用程序一个帖子正在发生之类的。你会如何处理这些情况?您是否可以推荐执行此操作的任何源代码?

谢谢,
泰迦。

最佳答案

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

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

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

请注意,NSOperationNSOperationQueue 并非仅针对网络请求,而是任何可拆分为原子任务并可并发调度的操作。

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

关于objective-c - 后台网络调用 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6861514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com