为什么使用AFNetworking而不是dispatch_async?

时间:2012-10-30 06:11:04

标签: objective-c ios networking afnetworking

为什么要使用AFNetworking的异步方法,只需使用GCD即可完成异步调用?

dispatch_async(bgQ, ^{

                //NSURLConnection code

                dispatch_async(dispatch_get_main_queue(), ^{
                    //UI code
                });
});

1 个答案:

答案 0 :(得分:36)

AFNetworking FAQ

的顶部详细解答了这一问题
  

虽然NSURLConnection提供+sendAsynchronousRequest:queue:completionHandler:+sendSynchronousRequest:returningResponse:error:,但使用AFNetworking有很多好处:

     
      
  • AFURLConnectionOperation及其子类继承自NSOperation,允许取消请求,>暂停/恢复,并由NSOperationQueue
  • 管理   
  • AFURLConnectionOperation还允许您轻松地流式上传和下载,处理身份验证挑战,>监控上传和下载进度,并控制缓存行为或请求。
  •   
  • AFHTTPRequestOperation及其子类区分基于HTTP的成功和不成功请求>状态代码和内容类型。
  •   
  • AFNetworking包括特定于媒体的请求操作,可将NSData转换为更多可用格式,如JSON,> XML,图像和属性列表。
  •   
  • AFHTTPClient提供了与Web服务交互的便捷界面,包括默认标头,身份验证,>网络可达性监控,批处理操作,查询字符串参数序列化和多部分表单请求。
  •   
  • UIImageView+AFNetworking添加了一种方便的方式来异步加载图片。
  •