2016-10-18 3 views
1
@implementation UIImageView (AFNetworking) 

имеет методAFNetwork, у меня есть что-то спутать

- (void)setImageWithURLRequest:(NSURLRequest *)urlRequest 
       placeholderImage:(UIImage *)placeholderImage 
         success:(void (^)(NSURLRequest *request, NSHTTPURLResponse * _Nullable response, UIImage *image))success 
         failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse * _Nullable response, NSError *error))failure 

В реализации этого метода, активный запрос URL сравнивается с urlRequest параметра:

if ([self isActiveTaskURLEqualToURLRequest:urlRequest]){ 
    return; 
} 

Когда это условие верно?

Я думал так много времени, но понятия не имею, как это работает? в основном всегда нет, когда может быть ДА? например?

+0

Мне очень нужна помощь, спасибо! –

ответ

0

Выполнение метода isActiveTaskURLEqualToURLRequest: проверяет, есть ли уже активная задача, загружающая изображение с того же URL-адреса. Он возвращает TRUE, когда метод вызывается с тем же параметром urlRequest перед завершением задачи загрузки изображения. Проверка там, чтобы предотвратить дублирование загрузки изображений для того же UIImageView.

Например, если вы должны были вызвать этот метод два раза подряд в одном блоке кода с тем же параметром NSURLRequest, в первый раз проверка сделана, if будет вычисляться FALSE, потому что он не имеет активного (один будет создан и выполнен). Во второй раз, когда делается проверка, if будет оцениваться до TRUE, потому что уже есть активная задача загрузки изображения.

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

+0

Я знаю, спасибо! –