Сохранить цикл с AFNetworking

Я пишу галерею с изображениями, которые могут быть загружены по URL с AFNetworking,

В Init метод ImageView объект я вызываю функцию, которая отправляет запрос. Вот:

- (void) loadWithUrl:(NSURL *)url
{
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                       timeoutInterval:TimeOut];
    [request setHTTPShouldHandleCookies:NO];
    [request setHTTPShouldUsePipelining:YES];

    __weak AOWImageView *safeSelf = self;

    m_operation = [AFImageRequestOperation imageRequestOperationWithRequest:request
                                                       imageProcessingBlock:nil
                                                                    success:^
                   (NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image)
                   {
                       [safeSelf setImage:image];
                   }
                                                                    failure:^
                   (NSURLRequest *request, NSHTTPURLResponse *response, NSError *error)
                   {
                       [safeSelf setNoImageLabelOpaque];
                   }];

    [m_operation start];
}

Если ImageView находится за пределами видимой части экрана - (void) dealloc называется. Я отменяю операцию загрузки изображения в этом методе так: [m_operation cancel];, Я предполагаю, что операции не отменены, потому что память увеличивается и не освобождается.

Я думаю, что есть сохранить цикл. Я хочу понять, как правильно написать. Благодарю.

1 ответ

Решение

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

Относительно "лучших практик" для AFNetworking и загрузка изображений-

AFNetworking имеет встроенную категорию на UIImageView у этого есть удобные методы для установки изображения представления изображения через URL.

Увидеть UIImageView+AFNetworkingконкретно setImageWithURL: метод и связанные с ним. Это также имеет преимущество в сохранении кэша (так что вам не нужно снова загружать изображения, если их запрашивают несколько раз), что, как кажется, AFAIK не делает AFImageRequestOperation,

Другие вопросы по тегам