2017-05-16 2 views
0

Swift manchmal AppDelegate Fehler geben, wenn versuchen, Benutzer-Standort zu findenSwift manchmal diese AppDelegate Fehler geben, wenn versuchen, Benutzer-Standort zu finden „Beenden app aufgrund nicht abgefangene Ausnahme‚NSRangeException‘..“

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArray0 objectAtIndex:]: index 0 beyond bounds for empty NSArray' 
*** First throw call stack: 
(0x18b3fd1b8 0x189e3455c 0x18b367bac 0x1000ffd20 0x1000fe7f4 0x1000fea30 0x193400a38 0x1934002b4 0x1933f34b8 0x18b3aaa44 0x18b3aa240 0x18b3a8538 0x18b2d62b8 0x18cd8a198 0x19131d7fc 0x191318534 0x100108078 0x18a2b95b8) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

Das ist mein locationManager Funktion:

Manchmal funktioniert es gut, aber manchmal stürzt die App und geben Sie diese AppDelegate Fehler. Warum bekomme ich diesen Fehler und wie behebe ich ihn?

Antwort

0

Sie gehen davon aus, dass das [CLLocation] Array tatsächlich Elemente enthält, was nicht immer der Fall ist. Fügen Sie eine if let hinzu, um den Standort abhängig davon, ob er bereitgestellt wird oder nicht, bedingt zu verarbeiten.

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    if let location = locations.last { 
     myLat = location.coordinate.latitude 
     myLng = location.coordinate.longitude 
     self.locationManager.stopUpdatingLocation() 
     createMarker(lat: myLat, lng: myLng, zoom: 16) 
    } 
} 
+0

Es funktioniert nicht .. – HiKa

Verwandte Themen