Swift 4.2 Alamofire: дополнительный аргумент 'method' в вызове - PullRequest
0 голосов
/ 19 сентября 2018

Я обновил свои коды до Xcode 10 и Swift 4.2, я получил эту ошибку.дополнительные аргументы.Я перепробовал все доступные решения, но они, возможно, для более старых версий swift.Я использую версию alamofire: Alamofire 4.7.3 и вот мой код:

func callRemoveUserApi() {
        let token = SharedManager.getAuthenticationToken()
        MBProgressHUD.showAdded(to: self.view, animated: true)
        let headers = [
            "token": token
        ]
        let manager = SharedManager.sharedInstance
        let user = manager.getUpCurrentUser()
        var params = [String:String]()
        params  = [
            "id": user.removed_member!.description,
            "userpath":self.selectedUser.userpath!,
            "path":user.path!
        ]


        Alamofire.request(removeMember, method:.put, parameters: params, encoding: JSONEncoder.default, headers: headers).responseJSON { response in
            print("Request  \(String(describing: response.request))")
            print("RESPONSE \(String(describing: response.result.value))")
            print("RESPONSE \(response.result)")
            print("RESPONSE \(response)")
            switch response.result {
            case .success:
                MBProgressHUD.hide(for: self.view, animated: true)
                var tempResponseDict = response.result.value as! NSDictionary
                // var array = tempResponseDict.object(forKey: "data") as! NSArray
                NotificationCenter.default.post(name: Notification.Name("callMatchesApi"), object: nil)
                self.navigationController?.popViewController(animated: true)
                break
            case .failure( _):
                MBProgressHUD.hide(for: self.view, animated: true)
                break

            }
        }
    }

Решение: Преобразовать JSONEncoder.default в JSONEncoding.default и вызов Alamofire будет.

Alamofire.request(mobileInfo, method:.put, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON { response in

1 Ответ

0 голосов
/ 24 сентября 2018

Объявление заголовка:

 var header : [String:String]?

Добавление значений в заголовок:

   header = [AppConstant.Content:AppConstant.ContentType,
                      AppConstant.Authorization : UserDefaults.standard.secretObject(forKey: AppConstant.AuthToken) as! String]

Метод Alamofire:

Alamofire.request(mobileInfo, method:.put, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON { response in

Надеюсь, это сработает для вас, удачи..:)

...