Swift 2: no se puede get la location del usuario con CLLocationManager

Aquí está mi código de VC:

import UIKit import MapKit import CoreLocation class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate { @IBOutlet weak var mapView: MKMapView! let locationManager = CLLocationManager() override func viewDidLoad() { super.viewDidLoad() locationManager.delegate = self locationManager.requestWhenInUseAuthorization() mapView.showsUserLocation = true } func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) { mapView.showsUserLocation = (status == .AuthorizedAlways) } func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { let locValue:CLLocationCoordinate2D = manager.location!.coordinate print("locations = \(locValue.latitude) \(locValue.longitude)") } } 

También he agregado NSLocationWhenInUseUsageDescription en mi file Plist. Y tengo los frameworks CoreLocation y MapKit, ¿alguna idea de por qué esto no funciona? No muestra la location del usuario en el map ni imprime las coorderadas del usuario. No he encontrado nada en línea en el desbordamiento de stack.

Esto me funciona

Swift 2 – (Xcode 7.2.1)

ViewController.swift

 import UIKit import CoreLocation class ViewController: UIViewController, CLLocationManagerDelegate { var locationManager: CLLocationManager = CLLocationManager() override func viewDidLoad() { super.viewDidLoad() locationManager.desinetworkingAccuracy = kCLLocationAccuracyBest locationManager.delegate = self locationManager.requestWhenInUseAuthorization() locationManager.startUpdatingLocation() } func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { self.locationManager.stopUpdatingLocation() let latestLocation = locations.last let latitude = String(format: "%.4f", latestLocation!.coordinate.latitude) let longitude = String(format: "%.4f", latestLocation!.coordinate.longitude) print("Latitude: \(latitude)") print("Longitude: \(longitude)") } } 

info.plist

Agregar una nueva línea

Lista de properties de información: NSLocationWhenInUseUsageDescription

Tipo: cadena

Valor: la aplicación usa esta información para mostrarte tu location

Intente get la location obteniendo el último object para las locations de la matriz en el método locationManager(_:,didUpdateLocations locations: [CLLocations]) .

Algo como esto:

 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { let locValue:CLLocationCoordinate2D = locations.last! print("locations = \(locValue.latitude) \(locValue.longitude)") }