我正在使用Alamofire进行网络通话。
主要功能如下:
public func request(URLRequest: URLRequestConvertible) -> Request {
...
return request
}
所以我创建了我的URLRequestConvertible并运行了Alamofire的 request 方法。我还尝试添加HTTP标头。
public func request(URLRequest: URLRequestConvertible) -> Request {
URLRequest.setValue("\random()" , forHTTPHeaderField : "identifier"
URLRequest.setValue("\buildversion()" , forHTTPHeaderField : "build"
return request
}
但没有任何反应,也没有添加标题!仅存在在请求方法调用之前添加的标头。
问题是我认为URLRequest只是get
而我不能set
。有没有解决方法?
public protocol URLRequestConvertible {
/// The URL request.
var URLRequest: NSMutableURLRequest { get }
}
有解决方法吗?
答案 0 :(得分:0)
URLRequest
是一个结构,因此您可以修改方法本地副本;改变永远不会传播到外面。
您可以通过参数inout
:
public func request(request: inout URLRequestConvertible) -> Request {
...
}
呼叫站点,您还必须明确标记参数:
let myRequest = ...
request(&myRequest)
注意: