在 iPhone 中实现下载队列的最佳方法是什么?这可以用 ASIHTTPRequest 库来完成吗?
2 回答
我认为实施一个并不难。这是我的策略:
1/你有一个任务数组(简单来说,只是一个url数组)来存储下载url列表
2/ 你可以有一个单例对象,无论何时,你将 url 放入队列中,你通知它。
3/ 当单例对象被通知时,它检查它是否可以自由地做这项工作。如果是,则从队列中取出第一个url,向服务器调用异步请求。它将其状态设置为忙碌。
4/ 当异步请求回调时,单例再次检查队列,看是否为空。如果不是,则获取下一个 url,再次执行第 3 步。如果为空,则单例对象将其状态设置为空闲,然后下一个对象放入下载队列中可以通知单例对象。
通过检查一个常数,您可以同时有许多异步请求。是的,您可以使用 ASIHTTPRequest 库调用异步请求。
我不知道是否有任何库可以为您完成这项工作,但我认为它很容易实现。
ASIHTTPRequest
包括ASINetworkQueue
可用作下载队列的对象,请参阅:
http://allseeing-i.com/ASIHTTPRequest/How-to-use#about_ASINetworkQueues
然后,您可以像这样跟踪整个过程:
http://allseeing-i.com/ASIHTTPRequest/How-to-use#tracking_download_progress_for_a_set_of_requests