Проблема при правильном отображении сообщения об ошибке для недействительных учетных данных

#swift #rawstring

#swift #rawstring

Вопрос:

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

 (lldb) po (response.rawString)
"{"message":"Invalid Credentials"}"
 

Я хотел бы отобразить только :
Неверные учетные данные

Ответ №1:

Вы можете добавить пользовательский тип для своей ошибки и привести его в соответствие с Codable

 struct ServerError: Error, Codable {
    let message: String
}
 

а затем расшифруйте значение response.rawString использования JSONDecoder

 let decoder = JSONDecoder()
guard
    let data = response.rawString.data(using: .utf8),
    let error = try? decoder.decode(ServerError.self, from: data)
else {
    return
}
print(error.message) // output: Invalid Credentials