Сравните ответ Alamofire со строкой - PullRequest
1 голос
/ 01 апреля 2019

Я пытаюсь сравнить ответ, который возвращает Alamofire, с серией значений, но я не понимаю, как мне следует сравнивать ответ со строкой. Это мой код

Alamofire.request(urlRegister, method: .post, parameters: parameters).responseString { response in

    let myResponse: String = response.result.value!
    if let data = response.data, let myResponse2 = String(data: data, encoding: .utf8) {
        if myResponse2 == "Insert" {
            print("Insert")
        } else if myResponse2  == "exists" {
            print("exists")
        } else {
            print("Conetion Error")
        }
    } 

}

Я также пытался сохранить ответ в строковой переменной, но он также не позволяет мне сравнивать. Я благодарю за любую помощь, заранее спасибо.

1 Ответ

1 голос
/ 01 апреля 2019

Ваш код выглядит нормально, если в ответе указан верный data.Но в case из error вы не сможете найти причину нежелательного результата.Лучше использовать response result enum, чтобы получить четкое представление о том, что происходит, как показано ниже,

    Alamofire.request(urlRegister, method: .post, parameters: parameters).responseString { response in
        switch response.result {
        case .success(let value):
            print(value)
            if value == "Insert" {
                print("This is insert!")
            } else if value == "exists" {
                print("Value exists!")
            } else {
                print("Some unwanted value!")
            }
        case .failure(let error):
            print(error)
        }
    }
}
...