Когда запрос API терпит неудачу, мне нужно знать количество неудачных попыток. Бэкэнд добавил свойство «попытки» к объекту ошибки. Как я могу найти это значение, поскольку NSError не поддерживает спаривание KV, и я не вижу его, когда записываю объект ошибки в консоль.
Разобрать настраиваемое значение из NSError
comment
Как выглядит ваш код при появлении этой ошибки?
- person koen   schedule 10.10.2018
comment
Я использую nsurlsession для запросов, которые обеспечивают обратный вызов с NSData, NSURLResponse и NSError. Таким образом, при сбое запроса серверная часть явно добавляет «попытки» к объекту ошибки. Как получить это значение из NSError или, может быть, из NSURLResponse?
- person AnonProgrammer   schedule 10.10.2018
comment
Когда вы говорите «бэкэнд», вы имеете в виду веб-службу? Если это так, данных не будет в NSErrror. Он будет либо в ответе URL как значение заголовка, либо в самих данных, если он будет возвращен в теле.
- person Paulw11   schedule 10.10.2018
comment
@ Paulw11, хорошо, дело в данных. Таким образом, в случае, когда этот конкретный запрос не выполняется, и мне нужно, чтобы ошибка «попыток» была равна нулю, и у данных есть объект, содержащий информацию об ошибке. Для этого исключения мне придется внести изменения в сетевой уровень.
- person AnonProgrammer   schedule 10.10.2018
Ответы (1)
Если вы используете NSURLSession для urlrequest, тогда у вас будут методы делегирования для ответов NSURLSession, а именно:
-> didReceiveResponse = здесь вы получаете ответ о том, что urlrequest завершен и получен статус ответа
-> didReceiveData = здесь вы получаете УСПЕШНУЮ дату ответа на ваш запрос
-> didCompleteWithError = здесь вы получаете ответ FAILURE (т.е.) обратный вызов ERROR, он вызывается каждый раз, когда запрос терпит неудачу, что дает вам данные об ошибках
person
Jerry
schedule
16.10.2018