Code unten sollte aktuellen Standort erhalten. Aber obiger Fehler wird generiert. Die Funktion didUpdateLocations wird nie aufgerufen.
Ausführen auf einem Gerät (iPhone 5s) iOS 9.1. In Info.plist sind die erforderlichen Gerätefunktionen und die Beschreibung der Verwendung des Datenschutzes - Standort wie im angehängten Bild gezeigt konfiguriert. Bitte helfen
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.requestLocation()
}
func locationManager(manager: CLLocationManager,
didFailWithError error: NSError)
print(error.description)
}
func locationManager(manager: CLLocationManager, didUpdateLocations
locations: [CLLocation]) {
print(“got location”)
}
Bitte versuchen Sie dies:
Gehe zu :
EDIT : Wie in den Kommentaren erwähnt, starte auch Xcode neu und du bist fertig!
Hoffe das hilft.
Wenn die Warnung zur Standortautorisierung nicht angezeigt wird, versuchen Sie, NSLocationAlwaysUsageDescription als Typzeichenfolge zu Ihrer Liste hinzuzufügen. Machen Sie dasselbe für NSLocationWhenInUseUsageDescription.
durchsuchen von Google Die Antworten scheinen seit IOS4.0 ein Problem zu sein.
in XCODE 7.1 unter Projekt => Schema => Schema bearbeiten.
unter Ausführen => Optionen => Core-Standort/Deaktivieren Sie Standortsimulation zulassen.
wählen Sie in Ihrem IOS Simulator unter Debug => Location einen Standort aus. Dies hat das Problem für mich behoben.
Ich hatte das gleiche Problem mit einer App, die ich von 8.0 -> 9.0/9.1 umstellte. Ich habe ein paar Dinge ausprobiert, zB den CLLocationManager-Teil nur in Swift und ein neues Obj-C-Projekt schreiben. Ich habe es auch auf verschiedenen Geräten getestet. Um das Problem auf dem Gerät zu lösen, habe ich die Funktion didFailWithError entfernt. Was den Fehler insgesamt stoppt. Dies scheint nicht die beste Idee zu sein, aber in IOS9 können Sie Ihre Anwendung auf Geräte mit GPS oder Location-Services beschränken. Android macht das schon sehr lange. Ich habe auch festgestellt, dass in Ihrer .plist die Berechtigungen nicht für NSLocationALwaysUsageDescription oder NSLocationWhenInUseUsageDescrtiption-Eigenschaften aktiviert sind.
Nur als Referenz habe ich angehängt, wie meine aktuelle .plist aussieht, die diesen Fehler nicht auslöst, sowie einen Code-Block in obj-c der Controller-Datei. Der Code beginnt am Ende einer vorherigen Funktion und hat dann den auskommentierten didFailWithError-Delegaten und die didUpdateLocations. Derzeit funktioniert dies erfolgreich in IOS 9.1
//Get map authorization
[CLLocationManager locationServicesEnabled];
locationManager = [[CLLocationManager alloc]init];
locationManager.delegate = self;
locationManager.allowsBackgroundLocationUpdates = YES;
if(nil == locationManager) locationManager = [[CLLocationManager alloc]init];
if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
[locationManager requestAlwaysAuthorization];
}
//locationManager.distanceFilter=10;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
//- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
//{
// NSLog(@"didFailWithError: %@", error);
// UIAlertView *errorAlert = [[UIAlertView alloc]
// initWithTitle:@"Error" message:@"Failed to Get Your Location" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
// [errorAlert show];
//}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
NSLog(@"LocationUpdated: %@",[locations lastObject]);
[self updateMapMarkers];
// NSDate* eventDate = location.timestamp;
// NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];
// if(fabs(howRecent) < 15.0){
// [self updateMapMarkers];
// }
}
Ich habe diese Vorschläge für Leute, die Apple-Karten in ihrer App verwenden