Alamofire类型'Result '的值没有成员'isSuccess'(Swift 5)

问题描述 投票:0回答:2

我有一个简单的过程,我在较早的版本(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']

ios swift alamofire
2个回答
1
投票

结果包含.success.failure大小写。

所以您应该这样对待isSuccess

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

0
投票

我想转换我的陈述:

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
        }

进入开关盒:

    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
            }
© www.soinside.com 2019 - 2024. All rights reserved.