从表视图中的URL异步获取图像

时间:2011-11-21 19:52:55

标签: ios uitableview nsurlconnection

所以我正在开发一个应用程序,其中包含一个包含单元格中图像的表格视图。我从URL下载所有这些图像并将它们存储在一个数组中。我需要异步加载这些图像,所以我决定使用NSURLConnectionDataDelegate。我试过这段代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    NSUInteger row = [indexPath row];
    NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:[URLsArray objectAtIndex:row]]];
    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    if (theConnection) {
        receicedData = [[NSMutableData alloc] init];
    } else {
        NSLog(@"Failed.");
    }
    return cell;
}

但它不起作用。我不知道写些什么:

-(void)connectionDidFinishLoading:(NSURLConnection *)connection

将图像设置为单元格中的imageViews。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:6)

我强烈建议您使用AFNetworking,因为它会解决这些问题。

至少,请查看他们的UIImageView category因为它允许您这样做:

UIImageView *imgView = //alloc, get it from a nib, whatever;
[imgView setImageWithURL:[NSURL URLWithString:@"StringPath"]];

答案 1 :(得分:0)

对于更简单的解决方案,我建议使用Cached Image for iOS。这是一段简单的代码,您可以将其添加到xcode项目中,它可以满足您的需求(+支持缓存)。