CoreLocation Swift: Komplettes Tutorial mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist CoreLocation und wofür wird es benötigt?

CoreLocation ist ein integriertes Framework von Apple für die Plattformen iOS, macOS, watchOS und tvOS. Es bietet Entwicklern Zugriff auf die Hardware- und Softwarefunktionen zur Standortbestimmung eines Geräts. Im Gegensatz zu Drittanbieter-Bibliotheken muss CoreLocation nicht über Paketmanager (CocoaPods, SPM) installiert werden – es ist fester Bestandteil des Standard-SDK.

Die wichtigsten Funktionen des Frameworks:

  • Ermittlung der aktuellen geografischen Koordinaten (Breiten- und Längengrad).
  • Echtzeit-Verfolgung von Standortänderungen.
  • Geofencing – Benachrichtigungen beim Betreten/Verlassen eines definierten Bereichs.
  • Bestimmung der Himmelsrichtung (Kompass) und der Bewegungsgeschwindigkeit.
  • Reverse Geocoding (Umwandlung von Koordinaten in Adressen) und Forward Geocoding (Adresse in Koordinaten).

Die Bibliothek ist unverzichtbar für Navigations-Apps, Lieferdienste, Fitness-Tracker, soziale Netzwerke mit Geotagging und alle anderen Anwendungen, die den Standort des Nutzers benötigen.

Einrichtung von CoreLocation

Da CoreLocation ein Teil des Betriebssystems ist, muss es nicht über pip oder npm installiert werden. Für die Nutzung reicht es aus, das Modul in den Code zu importieren.

Wichtig: Für die Arbeit mit Geolokalisierung muss eine Beschreibung der Nutzung in der Datei Info.plist Ihres Projekts hinzugefügt werden. Ohne diesen Eintrag wird die App beim Versuch, eine Berechtigung anzufordern, abstürzen.

Fügen Sie einen der folgenden Schlüssel hinzu (abhängig davon, wann Sie den Standort benötigen):

  • NSLocationWhenInUseUsageDescription – für den Zugriff nur bei aktiver Nutzung der App.
  • NSLocationAlwaysAndWhenInUseUsageDescription – für dauerhaften Zugriff (auch im Hintergrund).

Als Wert geben Sie einen Text ein, der dem Benutzer im Dialog zur Berechtigungsanfrage angezeigt wird (z. B. "Die App benötigt Zugriff auf Ihren Standort, um nahegelegene Cafés anzuzeigen").

Schnellstart mit einem Codebeispiel

Betrachten wir ein minimales Beispiel zur Ermittlung der aktuellen Benutzerkoordinaten.

import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {

    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager.delegate = self
        locationManager.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
    }

    // MARK: - CLLocationManagerDelegate
    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        guard let location = locations.last else { return }
        print("Breitengrad: \(location.coordinate.latitude)")
        print("Längengrad: \(location.coordinate.longitude)")
        // Stoppt das Update, um den Akku zu schonen
        locationManager.stopUpdatingLocation()
    }

    func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
        print("Fehler bei der Standortermittlung: \(error.localizedDescription)")
    }
}

Dieser Code erstellt einen Manager, fordert die Berechtigung des Benutzers an und beginnt mit der Verfolgung. Sobald die Koordinaten ermittelt wurden, werden sie in der Konsole ausgegeben.

Wichtige Methoden/Funktionen von CoreLocation

Im Folgenden werden die wichtigsten Methoden und Eigenschaften der Klasse CLLocationManager sowie der Hilfsklassen vorgestellt.

1. requestWhenInUseAuthorization()

Beschreibung: Fordert die Berechtigung des Benutzers für den Zugriff auf den Standort nur während der Nutzung der App an (die App ist im Vordergrund aktiv).

Parameter: Keine.

Beispiel:

let manager = CLLocationManager()
manager.requestWhenInUseAuthorization()

2. requestAlwaysAuthorization()

Beschreibung:

Empfehlungen