Получение изображений из URL в табличном представлении асинхронно - PullRequest
2 голосов
/ 21 ноября 2011

Итак, я разрабатываю приложение, которое содержит табличное представление с изображениями в ячейках. Я загружаю все эти изображения с 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

, чтобы установить изображения для изображений в ячейках. Кто-нибудь может помочь?

Ответы [ 2 ]

6 голосов
/ 22 ноября 2011

Я бы настоятельно рекомендовал использовать AFNetworking просто потому, что он решает подобные проблемы.

По крайней мере, взгляните на их UIImageView категорию , так как это позволяет вам сделать это:

UIImageView *imgView = //alloc, get it from a nib, whatever;
[imgView setImageWithURL:[NSURL URLWithString:@"StringPath"]];
0 голосов
/ 23 ноября 2011

Для более простого решения я бы рекомендовал использовать Cached Image для iOS . Это простой кусок кода, который вы можете добавить в свой проект xcode, и он делает то, что вам нужно (+ поддержка кеширования).

...