使用iOS标准类等的异步后台下载

时间:2012-03-18 19:52:01

标签: ios nsurlconnection nsoperationqueue

我想使用NSURLConnection和NSOperationQueue(?)在https上下载几个页面。我不想使用ASIHTTPRequest或类似的,因为当Apple更新iOS时,我不希望我的代码依赖于他们更新代码(如果需要)。我想使用纯苹果的东西。

将下载大约100个页面,它们还有一个应该下载的图像的URL。在下载上一页之前,不知道此链接。我相信5个或者更多的并发下载应该同时运行。

如何跟踪所有内容和下载进度,同时完成响应式用户界面?

1 个答案:

答案 0 :(得分:0)

我认为您可以使用NSURLConnection和NSOperationQueue。 NSURLConnection有一个类函数

+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler

在那里你可以定义它应该属于哪个NSOperationQueue,你可以定义一个完成处理程序。处理程序是一个块,它将在NSURLConnection完成时执行。在该块中,您可以访问NSURLResponse。 由于整个事情是异步的,因此您可以访问用户界面。

这里的一个很大的优点是可以在不同的cpu核心上执行这些块。