Загрузка изображений асинхронно в ячейки таблицы - PullRequest
1 голос
/ 27 февраля 2012

После поисков в интернете в течение нескольких недель и множества постов в стеке, я не могу найти способ реализовать это в моем проекте.
У меня есть список в моей учетной записи Dropbox. одна из строк в листе под одним из словарей под названием "cellPic".
Я хочу отобразить фотографии магазинов, которые есть в моем раскрывающемся списке, в ячейках таблицы.
Плист загружен в мой путь к документам:

-(void)readPlistFromServerAndSaveToDocs
    {
    //save plist from server to docs:
    NSArray *tempArr1 = [[NSArray alloc]initWithContentsOfURL:
                         [NSURL URLWithString:@"http://dl.dropbox.com/u/4082823/AppsFiles/Black/stores.plist"]];
    NSString *error;
    NSString *rootPath =
    [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
    NSString *plistPath = [rootPath stringByAppendingPathComponent:@"stores.plist"];
    NSArray *tmpArr = [NSArray arrayWithArray:tempArr1];
    NSData *tmpData = [NSPropertyListSerialization dataFromPropertyList:tmpArr
                                                             format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];

    NSLog(@"plistPath=%@",plistPath);

    if(tmpData)
    {
        [tmpData writeToFile:plistPath atomically:YES];
    }

    else 
    {
        NSLog(@"%@",error);
    }

    //Announcement if there is no server connection: 

    if(tempArr1.count == 0)
    {
        [self plistMessages];
    }
}

Пока все в порядке ...

В моем TableViewController по этому методу я хочу реализовать асинхронную загрузку изображений для ячеек.

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Моя цель состоит в том, чтобы асинхронно читать / загружать изображения, но я не знаю, как это происходит - нужно ли мне читать строки в моем списке на пути к моей документации, который содержит полный URL-адрес картинки, или мне нужно загрузить фотографии с сервера в мои документы, а затем прочитать их в ячейку?
В моем случае - варианты ячеек меняются, потому что они отсортированы по местоположению пользователя (ближайший к пользователю магазин находится в верхней части таблицы), поэтому я думаю, что мне нужно прочитать его из моего списка.
Это один из моих фото URL: http://dl.dropbox.com/u/4082823/AppsFiles/Black/ramat-hasharon.png
Каков наилучший способ сделать это и как я могу загрузить все изображения PNG одновременно (при необходимости)?
Я пытался сделать это с помощью этого урока, но он не пошел вообще.
http://www.switchonthecode.com/tutorials/loading-images-asynchronously-on-iphone-using-nsinvocationoperation
Помощь будет оценена !!
Спасибо!

1 Ответ

2 голосов
/ 27 февраля 2012

Взгляните на образец кода Apple LazyTableImages .

...