AFNetwork,我有些困惑
Posted
技术标签:
【中文标题】AFNetwork,我有些困惑【英文标题】:AFNetwork , I have something confused 【发布时间】:2016-10-18 03:14:28 【问题描述】:@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?例如?
【问题讨论】:
我需要你的帮助,非常感谢! 【参考方案1】:isActiveTaskURLEqualToURLRequest:
方法的实现检查是否已经有一个活动任务从同一 URL 下载图像。在图像下载任务完成之前使用相同的urlRequest
参数调用该方法时,它返回TRUE
。检查是为了防止同一 UIImageView 的重复图像下载。
例如,如果您要在同一个代码块中使用相同的 NSURLRequest 参数连续调用此方法两次,则第一次进行检查时,if
将评估为 FALSE
,因为它没有有一个活动任务(将创建并执行一个任务)。第二次检查时,if
将评估为TRUE
,因为已经有一个活动任务正在下载图像。
要亲自查看,请复制此调用,然后将其粘贴为下一条语句。在第二个(重复的)调用上设置断点并单步执行。
【讨论】:
以上是关于AFNetwork,我有些困惑的主要内容,如果未能解决你的问题,请参考以下文章
Objective-C 如何使用 AFNetwork 上传字符串
我是不是需要将 Alamofire 请求打包成 AFNetwork 之类的东西?
如何使用 AFNetwork 的 AFHTTPRequestOperationManager 设置 HTTP 请求正文?