私はSwift 3.0
に変換中です。のクラスはAlamofire
です。次のように私のコードは次のとおりです。Alamofire 4.0 Router文脈の種類が文脈なしであいまいです
enum Router: URLRequestConvertible {
case get(query: String, params: [String: AnyObject]?)
case post(query: String, params: [String: AnyObject]?)
case put(query: String, params: [String: AnyObject]?)
case delete(query: String, params: [String: AnyObject]?)
var urlRequest: NSMutableURLRequest {
// Default to GET
var httpMethod: HTTPMethod = .get
let (path, parameters): (String, [String: AnyObject]?) = {
switch self {
case .get(let query, let params):
// Set the request call
httpMethod = .get
// Return the query
return (query, params)
case .post(let query, let params):
// Set the request call
httpMethod = .post
// Return the query
return (query, params)
case .put(let query, let params):
// Set the request call
httpMethod = .put
// Return the query
return (query, params)
case .delete(let query, let params):
// Set the request call
httpMethod = .delete
// Return the query
return (query, params)
}
}()
// Create the URL Request
let urlRequest: NSMutableURLRequest
if let url = URL(string: Globals.BASE_URL + path) {
urlRequest = NSMutableURLRequest(url: url)
} else {
urlRequest = NSMutableURLRequest()
}
// set header fields
if let key = UserDefaults.standard.string(forKey: Globals.NS_KEY_SESSION) {
urlRequest.setValue(key, forHTTPHeaderField: "X-XX-API")
}
// Add user agent
if let userAgent = UserDefaults.standard.string(forKey: Globals.NS_KEY_USER_AGENT) {
urlRequest.setValue(userAgent, forHTTPHeaderField: "User-Agent")
}
// Set the HTTP method
urlRequest.httpMethod = httpMethod.rawValue
// Set timeout interval to 20 seconds
urlRequest.timeoutInterval = 20
return Alamofire.URLEncoding().encode(urlRequest as! URLRequestConvertible, with: parameters)
}
func asURLRequest() throws -> URLRequest {
}
}
これは私Alamofire.URLEncoding()
でType of expression is ambiguious without more context
を示すエラーを与えています。これは何を意味するのでしょうか? https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%204.0%20Migration%20Guide.md#parameter-encoding-protocolでAlamofire
ドキュメント内
が、彼らはコード
public protocol ParameterEncoding {
func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest
}
「func」として実装していただきありがとうございます。 –