异步图像下载

时间:2012-02-06 15:04:10

标签: iphone objective-c

以下代码位于cellForRowAtIndexPath内。我需要将此代码编辑为以下情况;

1。)如果下载图像时出现问题,此块应返回setFailedBlock块,如何将其添加到我的代码中?

2.。)当图像下载时,用户更改视图,然后我想停止执行此代码(停止下载)。我想我应该在viewdiddissapearviewwilldissapear方法中写取消块。但我不知道如何编写代码来取消下载。有人能告诉我怎么做吗?

(注意:此块位于cellForRowAtIndexPath方法内,因此必须从viewdiddissapearviewwilldissapear访问

dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//this will start the image loading in bg
dispatch_async(concurrentQueue, ^{        
    NSData *someimageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:someimageURL]];        
    dispatch_async(dispatch_get_main_queue(), ^{
       [cell.imageviewofsomeimage setImage:[UIImage imageWithData:someimageData ] ];
    });
});

1 个答案:

答案 0 :(得分:1)

如果您使用NSURLConnection,则此类具有cancel

AsyncURLConnection discussion