Alamofire Значение типа 'Result«не имеет члена» isSuccess »(Swift 5) - PullRequest
0 голосов
/ 07 октября 2019

У меня есть простая процедура, которую я использовал в моей предыдущей версии ( Swift 4 ). Сейчас я обновился до новой версии ( Swift 5, Alamofire 5.0.0-rc.2 ), так как я все еще начинающий, у меня возникли проблемы с этим. Некоторые части кода я уже мог переписать.

let headers: HTTPHeaders = [
        "SubscriptionKey": SubscriptionKey,
        "Host": HostName
    ]

    AF.request(URL(string: userInfoUrl)!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers)
        .validate()
        .responseJSON { response in
            guard response.result.isSuccess else {
                log.error("Error requesting user ID: \(String(describing: response.result.error))")
                completion(false, nil)
                return
            }

            guard let json = response.result.value as? [String: Any], let userId = json["userId"] as? String else {
                log.error("Malformed result from API call.")
                completion(false, nil)
                return
            }

response.result.isSuccess невозможно. Как я могу использовать эту часть?

Ошибка: значение типа 'Result' не имеет члена 'isSuccess'

В качестве возможного решения я протестирую вышеуказанное решение.

AF.request(URL(string: userInfoUrl)!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers)
    .validate()
    .responseJSON { response in
        switch response.result{
        case .success(let value):
            //succcess, do anything

        case .failure(let error):
            log.error("Error requesting user ID: \(String(describing: response.error))")
            completion(false, nil)
            return
        }

1 Ответ

1 голос
/ 07 октября 2019

Результат содержит .success или .failure кейс.

Таким образом, вы должны обращаться с isSuccess следующим образом

switch response.result {
   case .success(let value):
//success, do anything
   case .failure(let error): 
//failure
}
...