@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,什么时候可以?例如?
答案 0 :(得分:0)
isActiveTaskURLEqualToURLRequest:
方法的实现检查是否已存在从同一URL下载图像的活动任务。在图像下载任务完成之前,使用相同的TRUE
参数调用方法时,它返回urlRequest
。检查是为了防止同一UIImageView的重复图像下载。
例如,如果您在具有相同NSURLRequest参数的相同代码块中连续两次调用此方法,则第一次进行检查时,if
将评估为FALSE
,因为它没有活动任务(一个将被创建并执行)。第二次检查时,if
将评估为TRUE
,因为已经有一个活动任务下载图像。
要自己查看,请复制此调用,然后将其粘贴为下一个语句。在第二个(重复)调用上设置断点并逐步执行。