Обновление синтаксиса Alamofire to Swift 3 Мне интересно, какой будет самый безопасный способ обновления маршрутизатора на основе URLRequestConvertible (раздел кода в настоящее время не соответствует). Я пробовал несколько вещей, но я чувствую, что кодировка URL может немного измениться.Обновление кода маршрутизатора до Alamofire 4.0 и Swift 3
Хотя, похоже, Alamofire сильно изменил ошибки, которые я вижу непосредственно, так это то, что «.GET» запускает ошибку компилятора, также как и 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 и Swift 3 может помочь мне выяснить решение соответствовать перемены.
Большое спасибо заранее!
Спасибо за ответ! Могли бы вы изменить код, чтобы включить ваши изменения? Что касается .url, я действительно пытался, но компилятор дает вам «Type» Method (он же OpaquePointer) не имеет никакого члена 'get' ' – nights
изменить метод 'var method: HTTPMethod' что-нибудь еще, что вы должны найти легко в документах alamofire в разделе «Запросы маршрутизации». Если это не исправить все, что вы должны быть довольно близко, потому что я не заметил ничего с кодом, который вы предоставили, что должно быть проблемой. – JustinM
Хорошо. Благодарю. Как насчет этой строки: mutableURLRequest.setValue («API-ключ apiKey = \ (Router.apiKey) applicationId = \ (Router.applicationId)», forHTTPHeaderField: «X-Authorization») все это происходит за кулисами в новом Alamofire течь? – nights