Objective-C Vorgehen
Befolge die unten stehenden Anweisungen:
Für iOS 11
Für iOS 11, schau dir diese Antwort an: iOS 11 Standortzugriff
Du musst zwei Schlüssel in die Plist hinzufügen und eine Nachricht wie im unten stehenden Bild bereitstellen:
1. NSLocationAlwaysAndWhenInUseUsageDescription
2. NSLocationWhenInUseUsageDescription
3. NSLocationAlwaysUsageDescription
Für iOS 10 und darunter:
NSLocationWhenInUseUsageDescription
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers;
if([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
[locationManager requestWhenInUseAuthorization];
} else {
[locationManager startUpdatingLocation];
}
Delegierte Methoden
#pragma mark - Lolcation Update
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@"didFailWithError: %@", error);
UIAlertView *errorAlert = [[UIAlertView alloc]
initWithTitle:@"Fehler" message:@"Fehler beim Abrufen Ihres Standorts" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[errorAlert show];
}
-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
switch (status) {
case kCLAuthorizationStatusNotDetermined:
case kCLAuthorizationStatusRestricted:
case kCLAuthorizationStatusDenied:
{
// Führe eine Fehlerbehandlung durch
}
break;
default: {
[locationManager startUpdatingLocation];
}
break;
}
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations
{
CLLocation *location = [locations lastObject];
userLatitude = [NSString stringWithFormat:@"%f", location.coordinate.latitude];
userLongitude = [NSString stringWithFormat:@"%f", location.coordinate.longitude];
[locationManager stopUpdatingLocation];
}
Swift Vorgehen
Befolge die unten stehenden Anweisungen:
Für iOS 11
Für iOS 11 schau dir diese Antwort an: iOS 11 Standortzugriff
Du musst zwei Keys in die Plist hinzufügen und eine Nachricht wie im unten stehenden Bild bereitstellen:
1. NSLocationAlwaysAndWhenInUseUsageDescription
2. NSLocationWhenInUseUsageDescription
3. NSLocationAlwaysUsageDescription
Für iOS 10 und darunter:
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
//MARK- Standort aktualisieren
func updateMyLocation() {
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers;
if locationManager.respondsToSelector(#selector(CLLocationManager.requestWhenInUseAuthorization)) {
locationManager.requestWhenInUseAuthorization()
}
else {
locationManager.startUpdatingLocation()
}
}
Delegierte Methoden
//MARK: Standort Update
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
NSLog("Fehler bei der Aktualisierung des Standorts: %@", error)
}
func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
switch status {
case .NotDetermined: break
case .Restricted: break
case .Denied:
NSLog("Führe eine Fehlerbehandlung durch")
break
default:
locationManager.startUpdatingLocation()
}
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations.last! as CLLocation
var latitude = location.coordinate.latitude
var longitude = location.coordinate.longitude
}