Używanie Swift i NSURLSession. Opis NSError zlokalizowany jest bardzo ogólny, gdy nie mam połączenia z Internetem (ręcznie wyłączono sieć Wi-Fi/komórkową). Mówi „Operacja nie może być zakończona.”Obsługa błędów NSURLSession
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
szukam bardziej konkretnej wiadomości do wysłania do użytkownika. Włączam punkt przerwania i sprawdzam wszystkie obiekty, ale nie mogę znaleźć niczego dobrego.
Przed szybkich używałem AFNetworking obiektywnych C:
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
Komunikaty o błędach chciałbym uzyskać tutaj były bardzo opisowe, coś jak „połączenie internetowe wydaje się być zalogowany”
Musisz samodzielnie radzić sobie z błędami w Internecie. 'AFNetworking' samo implementuje' Reachability', dlatego ich błędy są bardziej opisowe i świadome kontekstu. Dodatkowo możesz użyć 'AFNetworking' w swoim szybkim projekcie, jak to opisano tutaj.[AFNetworking Integrate Swift] (https://medium.com/@aommiez/afnetwork-integrate-swfit-80514b545b40) –
hmm próbował oderwać się od zależności zewnętrznych bibliotek. Ale wygląda na to, że użyję ognia alamo (AFNetworking version of Swift), a następnie https://github.com/Alamofire/Alamofire – MobileMon
Drobne wyjaśnienie: Zgadzam się, że biblioteki takie jak Alamofire i AFNetworking oferują bogatszą obsługę błędów, ale to dlatego, że " ponowne sprawdzenie dla rzeczy, które inaczej musielibyśmy ręcznie sprawdzić (np. poprawny 'Content-Type',' statusCode' 'NSHTTPURLResponse', itp.). Nie ma to nic wspólnego z faktem, że AFNetworking oferuje (ale nie używa domyślnie) Zasięg. W przypadku ogólnych błędów sieci po prostu zwracają te same obiekty 'NSError', które otrzymujemy, gdy sami robimy to ręcznie. – Rob