Ich versuche, MapKit auf iOS 8 zu verwenden, und ich erhalte den Fehler:
%Vor% Nachdem ich hier nachgesehen habe, musste ich NSLocationWhenInUsageDescription
in meinem plist implementieren und auch locationManager.requestWhenInUseAuthorization()
aufrufen, aber es passiert nichts und ich erhalte immer noch diesen Fehler in der Konsole. Was mache ich falsch?
In meinem Anwendungsdelegaten habe ich eine optionale Variable für den locationManager außerhalb der Klasse erstellt und dann
festgelegt %Vor%Dies bewirkt, dass die Alarmansicht mit Ihrer NSLocationWhenInUseUsageDescription oder NSLocationAlwaysUsageDescription angezeigt wird, wenn Sie sie entsprechend ändern.
Dann habe ich in der View-Controller-Datei eine andere Variable außerhalb der Klasse erstellt, um einen lokalen CLLocationManager zu speichern. Ich stelle dann
ein %Vor%Dann können Sie die Delegate-Methode
verwenden %Vor%wird aufgerufen, wenn sich der Autorisierungsstatus ändert, wenn der Benutzer auf das Popup reagiert. Darin können Sie diesen Code verwenden, um den Benutzerstandort auf die Karte zu setzen.
%Vor%fügt den Standort des Benutzers nur dann zur Karte hinzu, wenn Sie für die Verwendung autorisiert sind.
Ich habe mich auch darüber geärgert, bis ich festgestellt habe, dass sich der Schlüssel info.plist
geändert hat. Wenn du NSLocationUsageDescription
in hattest, musst du entweder zu NSLocationAlwaysUsageDescription
oder NSLocationWhenInUseUsageDescription
(setze mindestens eins zu YES
) wechseln, jetzt ist es obligatorisch in iOS8.
Und dann funktioniert Roberts Code so, wie er sollte (danke fürs Teilen).
Es ist NSLocationWhenInUseUsageDescription, nicht NSLocationWhenInUsageDescription. Die meisten Orte online haben den falschen Schlüssel