为什么使用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及其子类从NSOperationinheritance,它允许取消,挂起/恢复请求,并由NSOperationQueuepipe理。
  • AFURLConnectionOperation还允许您轻松上传和下载,处理身份validation挑战,>监视上传和下载进度,并控制caching行为或请求。
  • AFHTTPRequestOperation及其子类基于HTTP>状态码和内容types来区分成功请求和不成功请求。
  • AFNetworking包括媒体特定的请求操作,将NSData转换为更可用的格式,如JSON,XML,图像和属性列表。
  • AFHTTPClient提供了一个方便的界面来与Web服务进行交互,包括默认标题,身份validation,networking可达性监控,批量操作,查询string参数序列化和多部分表单请求。
  • UIImageView+AFNetworking添加了一种便捷的方式来asynchronous加载图像。