Использование Swift и NSURLSession. Локализованное определение NSError, которое я получаю, является очень общим, когда у меня нет подключения к Интернету (вручную отключена сеть wifi/cell). Он говорит: «Операция не может быть завершена.»Обработка ошибок NSURLSession
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
Я ищу более конкретное сообщение, чтобы отправить пользователю. Я включил точку останова и проверил все объекты, но не нашел ничего хорошего.
До стрижа я использовал AFNetworking объективные C:
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
Сообщение об ошибках я хотел бы получить здесь было очень описательным, что-то вроде «подключения к интернету, кажется, отсутствуют»
Вы должны самостоятельно обрабатывать интернет-ошибки. 'AFNetworking' реализует' Reachability' сам по себе, поэтому их ошибки более наглядны и контекстны. Кроме того, вы можете использовать 'AFNetworking' в своем быстром проекте, как описано здесь.[AFNetworking Integrate Swift] (https://medium.com/@aommiez/afnetwork-integrate-swfit-80514b545b40) –
hmm пыталась оторваться от зависимости внешних библиотек. Но похоже, что я буду использовать огонь alamo (AFNetworking версия Swift), затем https://github.com/Alamofire/Alamofire – MobileMon
Небольшое разъяснение: я согласен с тем, что библиотеки, такие как Alamofire и AFNetworking, предлагают более богатую обработку ошибок, но это потому, повторно проверяя вещи, которые мы иначе должны проверить вручную (например, правильный «Content-Type», «statusCode» из 'NSHTTPURLResponse' и т. д.). Это не имеет никакого отношения к тому факту, что AFNetworking предлагает (но не использует, по умолчанию) Возможность повышения. Для общих сетевых ошибок они просто возвращают те же «объекты NSError», которые мы получаем, когда сами делаем это вручную. – Rob