AFNetwork ,我有些困惑

AFNetwork , I have something confused

@implementation UIImageView (AFNetworking)

有方法

- (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;
}

这个条件什么时候成立?

想了很久,就是想不通,到底是怎么做到的? 大多数情况下总是 NO,什么时候可以是 YES?例如?

isActiveTaskURLEqualToURLRequest: 方法的实现检查是否已经有活动任务从同一个 URL 下载图像。它 returns TRUE 当在图像下载任务完成之前使用相同的 urlRequest 参数调用该方法时。检查是为了防止为相同的 UIImageView 下载重复图像。

例如,如果您在同一代码块中使用相同的 NSURL请求参数连续调用此方法两次,则第一次进行检查时,if 将评估为 FALSE 因为它没有活动任务(将创建并执行一个)。第二次检查时,if 的计算结果为 TRUE,因为已经有一个正在下载图像的活动任务。

要亲自查看,请复制此调用,然后将其粘贴为下一个语句。在第二次(重复)调用上设置断点并单步执行。