瀏覽代碼

[Issue #50] Fixing error handling in response

Mattt Thompson 11 年之前
父節點
當前提交
34f8f2f049
共有 1 個文件被更改,包括 11 次插入5 次删除
  1. 11 5
      Source/Alamofire.swift

+ 11 - 5
Source/Alamofire.swift

@@ -447,11 +447,17 @@ public class Request {
 
         dispatch_async(self.delegate.queue, {
             dispatch_async(dispatch_get_global_queue(priority, 0), {
-                let (responseObject: AnyObject?, error: NSError?) = serializer(self.request, self.response, self.delegate.data, self.delegate.error)
-
-                dispatch_async(queue ?? dispatch_get_main_queue(), {
-                    completionHandler(self.request, self.response, responseObject, error)
-                })
+                if var error = self.delegate.error {
+                    dispatch_async(queue ?? dispatch_get_main_queue(), {
+                        completionHandler(self.request, self.response, nil, error)
+                    })
+                } else {
+                    let (responseObject: AnyObject?, serializationError: NSError?) = serializer(self.request, self.response, self.delegate.data, nil)
+
+                    dispatch_async(queue ?? dispatch_get_main_queue(), {
+                        completionHandler(self.request, self.response, responseObject, serializationError)
+                    })
+                }
             })
         })