Ios 如何更改默认请求完成队列?

Ios 如何更改默认请求完成队列?,ios,swift,macos,afnetworking,alamofire,Ios,Swift,Macos,Afnetworking,Alamofire,我正在做一个有很多API的应用程序,每个API的响应都必须导入到核心数据中。我知道默认情况下,Alamofire完成处理程序将位于主线程中。我想把它改成后台线程,就像我在请求完成时做核心数据导入操作一样。你能指导我如何在请求完成时将我的后台线程设置为默认线程吗 我不喜欢在每个API请求中设置它,相反,我想在单个位置设置它,就像我在AFNetworking中经常做的那样,它在AFHTTPSessionManager中有一个名为completionQueue的属性,因此我为AFHTTPSession

我正在做一个有很多API的应用程序,每个API的响应都必须导入到核心数据中。我知道默认情况下,Alamofire完成处理程序将位于主线程中。我想把它改成后台线程,就像我在请求完成时做核心数据导入操作一样。你能指导我如何在请求完成时将我的后台线程设置为默认线程吗


我不喜欢在每个API请求中设置它,相反,我想在单个位置设置它,就像我在AFNetworking中经常做的那样,它在AFHTTPSessionManager中有一个名为completionQueue的属性,因此我为AFHTTPSessionManager创建了子类,然后我轻松地更改了默认线程。我在Alamofire中找不到类似的东西。请为我提供更好的解决方案

Almofire不提供更改完成队列的方法。但您可以扩展
请求
类并添加自定义响应方法:

   extension Request {

     public func responseOnCustomQueue(completionHandler: (NSURLRequest?, NSHTTPURLResponse?, NSData?, NSError?) -> Void) -> Self {
       let queue = dispatch_get_main_queue() // custom queue for all requests
       return self.response(queue: queue, completionHandler: completionHandler)
     }
   }

这样,您就不必每次都指定自定义队列。

Almofire不提供更改完成队列的方法。但您可以扩展
请求
类并添加自定义响应方法:

   extension Request {

     public func responseOnCustomQueue(completionHandler: (NSURLRequest?, NSHTTPURLResponse?, NSData?, NSError?) -> Void) -> Self {
       let queue = dispatch_get_main_queue() // custom queue for all requests
       return self.response(queue: queue, completionHandler: completionHandler)
     }
   }
这样,您就不必每次都指定自定义队列