2012-07-18 2 views
0

Так у меня есть UITableView с пользовательской UITableViewCells и внутри моей пользовательской ячейке у меня есть UIImageView, в котором я использую AFNetworking категории, чтобы загрузить изображение:AFNetworking и UIImageView вопросы обновления пронизывающие

NSString *imageURLString = [[object.image_ valueForKey:@"low_resolution"] valueForKey:@"url"]; 
    NSURLRequest *imageURLRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:imageURLString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30]; 
    [self.imageView_ setImageWithURLRequest:imageURLRequest andAnimate:YES placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){ 

    }failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){ 
     NSLog(@"FAILED"); 
    }]; 

Проблема заключается в том, иногда, когда вы прокручиваете вниз. Кажется, что задержка длится до тех пор, пока не будет вызван запрос на изображение. Я тестирую очень хорошую связь. Почему это происходит?

Я не уверен, что сам запрос на изображение запускается позднее, или ответ просто возвращается в последнюю точку. Но то, что я вижу, это то, что изначально, когда приложение загружает изображения, загружается нормально. Когда я прокручиваю вниз, все изображения белые. Если я буду терпеливо ждать столько же, сколько 60 секунд, тогда он загружается.

+0

до тех пор, пока запрос изображения не будет запущен, или пока не будет передано запрошенное изображение и не будет вызван ваш блок успеха? – sergio

+0

нет, он не называется – xonegirlz

ответ

0

Одним из возможных объяснений является то, что при прокрутке вниз по списку вы отправляете много запросов, которые AFNetworking выполняет в фоновом режиме.

По мере того, как вы прокручиваете вниз, количество отправленных запросов растет, и они будут, возможно, обслуживаться на стороне сервера в порядке FIFO (также может быть, что сервер не будет превышать заданную полосу пропускания при передаче изображений в ваше приложение), поэтому, когда вы прекращаете прокрутку, прежде чем вы сможете видеть текущие изображения, вам нужно подождать, пока загрузится куча предыдущих изображений.

Это может объяснить, почему у вас есть задержка. Я бы предложил помещать и отслеживать NSLog в вашем обработчике успеха и регистрировать URL-адрес запроса, чтобы вы могли видеть, что происходит: проверять поток входящих изображений; сколько времени требуется для переноса каждого изображения.

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

+0

FYI, сервер - это API Instagram API – xonegirlz

Смежные вопросы