为什么使用AFNetworking而不是dispatch_async?
为什么要使用AFNetworking的asynchronous方法,当一个asynchronous调用可以简单地使用GCD?
dispatch_async(bgQ, ^{ //NSURLConnection code dispatch_async(dispatch_get_main_queue(), ^{ //UI code }); });
AFNetworking常见问题解答顶部详细回答了这个问题 :
虽然
NSURLConnection
提供了+sendAsynchronousRequest:queue:completionHandler:
and+sendSynchronousRequest:returningResponse:error:
:,使用AFNetworking有很多好处:
AFURLConnectionOperation
及其子类从NSOperation
inheritance,它允许取消,挂起/恢复请求,并由NSOperationQueue
pipe理。AFURLConnectionOperation
还允许您轻松上传和下载,处理身份validation挑战,>监视上传和下载进度,并控制caching行为或请求。AFHTTPRequestOperation
及其子类基于HTTP>状态码和内容types来区分成功请求和不成功请求。- AFNetworking包括媒体特定的请求操作,将
NSData
转换为更可用的格式,如JSON,XML,图像和属性列表。AFHTTPClient
提供了一个方便的界面来与Web服务进行交互,包括默认标题,身份validation,networking可达性监控,批量操作,查询string参数序列化和多部分表单请求。UIImageView+AFNetworking
添加了一种便捷的方式来asynchronous加载图像。