Ios 在swift中为每个API更新了almofire TimeoutinerValforRequest?

Ios 在swift中为每个API更新了almofire TimeoutinerValforRequest?,ios,swift,networking,alamofire,Ios,Swift,Networking,Alamofire,在我们的项目中,我们使用网络管理器来处理使用Alamofire的所有请求和响应。在alamofire中,默认的内部超时为30。但是我们需要将某些请求的“timeoutitervalforrequest”更改为50、60等 private var manager : SessionManager? func sessionManager() -> SessionManager { if let manage = self.manager {

在我们的项目中,我们使用网络管理器来处理使用Alamofire的所有请求和响应。在alamofire中,默认的内部超时为30。但是我们需要将某些请求的“timeoutitervalforrequest”更改为50、60等

private var manager : SessionManager?

    func sessionManager() -> SessionManager {
        if let manage = self.manager {
            return manage
        }
        else {
            let configuration = URLSessionConfiguration.default
            configuration.timeoutIntervalForRequest = 30
            self.manager = SessionManager(configuration: configuration, delegate: CustomSessionDelegate())
            return self.manager!
        }
    }
我已经添加了param timeinterval并在其中设置了默认值

func sessionManager(timeoutInterval:Double = 30) -> SessionManager {
//passed the param 
configuration.timeoutIntervalForRequest = timeoutInterval
}

但时间间隔值未更新。我的问题是如何使用此函数为每个请求更新SessionManager的超时间隔。我们可以使用每个API的超时时间间隔来实现它,但我希望它高于普通函数。

您可以覆盖函数,如下所示:

func sessionManager(timeInterval : Double) -> SessionManager {
        if let manage = self.manager {
            return manage
        }
        else {
            let configuration = URLSessionConfiguration.default
            configuration.timeoutIntervalForRequest = timeInterval
            self.manager = SessionManager(configuration: configuration, delegate: CustomSessionDelegate())
            return self.manager!
        }
    }

它在每个Api调用中都可以正常工作,而不是设置timeoutIntervalForRequest,为什么不在URLRequest对象中设置timeoutInterval,然后将该请求传递到Alamofire函数中呢

    let request = NSMutableURLRequest(url: URL(string: "")!)
        request.httpMethod = "POST"
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")
        request.timeoutInterval = 50 
Alamofire.request(request as! URLRequestConvertible).responseJSON {
        response in
        // do whatever you want here
    }

1.我们在第一个API中将TimeOutiterValforRequest设置为30,在第二个API中,调用if let块并执行timeout 30管理。通过这种方法,您可以为所有API调用设置自定义时间间隔,但当我尝试设置自定义时间间隔时。如果让manage=self.manager块被调用。