In meiner viewDidLoad
Methode habe ich
locationManager = [[CLLocationManager alloc]init]; // initializing locationManager
locationManager.delegate = self; // we set the delegate of locationManager to self.
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
[locationManager requestWhenInUseAuthorization];
}
Und die Anfrage wird aufgerufen, aber der Benutzer wird nicht dazu aufgefordert? Warum?
objective-c
xcode
ios8
cllocationmanager
spen123
quelle
quelle
if([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization:)])
Antworten:
Sie müssen wahrscheinlich Ihre
plist
Datei aktualisieren . Hier ist ein Tutorial, wie es geht , schnell und schmutzig:Sie müssen Ihrer Info.plist-Datei einen der folgenden Schlüssel hinzufügen:
NSLocationWhenInUseUsageDescription NSLocationAlwaysUsageDescription
Sie müssen auch eine Autorisierung für die entsprechende Standortmethode anfordern,
WhenInUse
oderBackground
. Verwenden Sie einen dieser Aufrufe:[self.locationManager requestWhenInUseAuthorization] [self.locationManager requestAlwaysAuthorization]
Es gibt auch einen Beitrag, den ich hilfreich fand:
Ortungsdienste funktionieren unter iOS 8 nicht
Diese Antwort beschreibt, wie Sie Ihre
plist
Datei aktualisieren :Sie sollten wahrscheinlich die Zeichenfolgen des Wörterbucheintrags in der Datei info.plist anpassen und überprüfen, bevor Sie den Code versenden .
quelle