Разобрать настраиваемое значение из NSError

Когда запрос API терпит неудачу, мне нужно знать количество неудачных попыток. Бэкэнд добавил свойство «попытки» к объекту ошибки. Как я могу найти это значение, поскольку NSError не поддерживает спаривание KV, и я не вижу его, когда записываю объект ошибки в консоль.


person AnonProgrammer    schedule 10.10.2018    source источник
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