升級Alamofire斯威夫特3語法我不知道什麼是基於URLRequestConvertible,(代碼段目前不符合)升級路由器的最安全的方式。我已經嘗試了一些東西,但我的感覺是URL編碼可能會有所改變。升級路由器代碼Alamofire 4.0和斯威夫特3
雖然Alamofire似乎已經改變了廣泛的錯誤,我可以直接看到的是,「不用彷徨」觸發編譯器錯誤,一樣ParameterCoding.URL即不再有效。
碼型我有(可能在我的代碼至少30米不同的地方)是:
// MARK: - AlamoFire Router
enum Router: URLRequestConvertible
{
static let baseURL = Singleton.sharedInstance.apiURL
static let apiKey: String = Singleton.sharedInstance.apiKey
static let applicationId: String = Singleton.sharedInstance.applicationId
case userPoints()
var method: Alamofire.Method
{
switch self
{
case .userPoints:
return .GET
}
}
var path: String
{
switch self
{
case .userPoints:
return "https://stackoverflow.com/users/points/user/\(Singleton.sharedInstance.user.id)"
}
}
var URLRequest: NSMutableURLRequest
{
let URL_val = URL(string: Router.baseURL)!
let mutableURLRequest = NSMutableURLRequest(URL: URL_val.URLByAppendingPathComponent(path))
mutableURLRequest.HTTPMethod = method.rawValue
// Send API key and Application ID in the header
mutableURLRequest.setValue("API-Key apiKey=\(Router.apiKey) applicationId=\(Router.applicationId)", forHTTPHeaderField: "X-Authorization")
let encoding = ParameterEncoding.URL
#if DEBUG
print(mutableURLRequest)
#endif
switch self
{
case .userPoints:
return encoding.encode(mutableURLRequest, parameters: nil).0
}
}
}
非常希望有人在Alamofire和斯威夫特3洞察力可以幫助我找出一個解決方案,以符合變化。
非常感謝提前!
謝謝你的回答!您是否可以編輯代碼以包含您的更改?至於的.url,其實我已經嘗試過,但編譯器給你一個「類型‘方法’(又名OpaquePointer)沒有成員‘得到’」 – nights
改變方法'VAR方法:HTTPMethod'別的,你應該能夠找到輕鬆地在「路由請求」部分的alamofire文檔中。如果這不能解決所有問題,那麼你應該非常接近,因爲我沒有注意到你提供的代碼應該是一個問題。 – JustinM
好的。謝謝。這個怎麼行:mutableURLRequest.setValue( 「API密鑰apiKey = \(Router.apiKey)的applicationID = \(Router.applicationId)」,forHTTPHeaderField: 「X-授權」)是新Alamofire幕後所有這happning流? – nights