#ios #swift #xcode #alamofire
#iOS #swift #xcode #alamofire
Вопрос:
Как только я обновился до версии alamofire 4, я получаю сообщение об ошибке: метод дополнительного аргумента при вызове
Alamofire.request("www.blabla", method: .put, parameters: parameters, headers: headers, encoding: .JSON)
Я уже изменил его, чтобы использовать «метод: .put», как указано выше, но я все равно получаю ошибку
Ответ №1:
У меня возникла эта проблема при обновлении до Alamofire 4, и я решил ее, переместив аргумент headers и сделав его последним аргументом в вызове. Также encoding: .JSON
должно быть encoding: JSONEncoding.default
.
Вызов должен выглядеть следующим образом:
Alamofire.request(url: myUrl, method: .put, parameters: myParams,
encoding: JSONEncoding.default, headers: myHeaders)
Комментарии:
1. Я попытался переключить его на: Alamofire.request(url: «www.blabla «, метод: .post, параметры: параметры, кодировка: .JSON, заголовки: заголовки), но я все равно получаю ошибку : /
2. Для кодирования замените
.JSON
наJSONEncoding.default
. Оригинальный ответ обновлен.3. Но я все равно получаю: использование неразрешенного идентификатора JSONEnconding при использовании Alamofire.request(«www.myUrl «, метод: .post, параметры: parameters, кодировка: JSONEnconding.default, заголовки: headers) .responseJSON()
4. О, в вашем ответе была опечатка, я не видел JSONEncoding / JSONEnconding
Ответ №2:
Какой тип parameters
? Он должен быть как минимум [:]
похожим:
Alamofire.request(url: myUrl, method: .put, parameters: [:], encoding: JSONEnconding.default, headers: myHeaders)
Комментарии:
1. Вот так: пусть параметры: [Строка: AnyObject]
2. Но я все равно получаю: использование неразрешенного идентификатора JSONEnconding при использовании Alamofire.request(«www.myUrl «, метод: .post, параметры: parameters, кодировка: JSONEnconding.default, заголовки: headers) .responseJSON()
3. О, в вашем ответе была опечатка, я не видел JSONEncoding / JSONEnconding
Ответ №3:
Я перешел к URLRequest, а затем просто к вызову Alamofire. Ничего, что я нашел, не сработало, кроме как разбить его. Я использую Swift 3 и XCode 8.2.1, и я считаю, что это SourceKit swift, который неправильно определяет объект.
это
Alamofire.request(url:treeURL!, method: .get, parameters: [:], encoding: JSONEncoding.default, headers: ["Authorization" : app.getToken()])
стало так:
var request = URLRequest(url: treeURL!)
request.httpMethod = "GET"
request.allHTTPHeaderFields = ["Authorization" : app.getToken()]
Alamofire.request(request as URLRequestConvertible)
Ответ №4:
Alamofire.request( "http://....", method: .put , parameters: parameters, encoding: JSONEncoding.default).responseJSON{
response in
if response.result.isSuccess {
//some code
}
}
Комментарии:
1. Это не помогает.