metodo delegato mapViewDidFailLoadingMap viene chiamato con l'errore == 0
Domanda
Nel mio viewcontroller, creo un oggetto MKMapView. Ho impostato il delegato per sé, e nel ViewController, ho implementato:
- (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error
Questo metodo viene chiamato, ma nel debugger, vedo che error
ha il valore di 0x0
Questo accade il dispositivo, e nel simulatore.
Ho bisogno del codice di errore, come voglio dare un messaggio per il caso in cui l'accesso a Internet non è disponibile, ignorando i casi come (dal doc API) "se la richiesta di piastrelle di mappe aggiuntive viene in mentre una precedente richiesta per piastrelle è ancora in attesa"(che non sembra come un fallimento per me)
Soluzione
Ho appena fatto alcuni test.
- Internet è spento: [descrizione dell'errore] = errore di dominio = Codice NSURLErrorDomain = -1009 UserInfo = 0x46c6120 "alcuna connessione a Internet"
- Scorrimento in giro troppo in fretta: error = nil (0x0)
Non so se ci sono altre condizioni di errore, ma almeno si può discriminare tra un errore internet conneciton (nel qual caso verrà visualizzato un avviso) e lo scorrimento troppo velocemente caso, in cui mi limiterò a ignorarlo.