单击允许后未调用 didChangeAuthorization Status

didChangeAuthorizationStatus not called after clicking Allow

这是我实现 google 地图和 CLLocationManager:

的代码
class MapViewController: UIViewController {
    @IBOutlet weak var MapView: GMSMapView!
    var locationmanager = CLLocationManager()

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

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
extension MapViewController: CLLocationManagerDelegate {
    private func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
     print("didChangeAuthorizationStatus")
     if status == .authorizedWhenInUse {
            locationmanager.startUpdatingLocation()
            MapView.isMyLocationEnabled = true
            MapView.settings.myLocationButton = true
        }
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        print("didUpdateLocations")
        if let location = locations.first {
            MapView.camera = GMSCameraPosition(target: location.coordinate, zoom: 15, bearing: 0, viewingAngle: 0)
            locationmanager.stopUpdatingLocation()
        }
    }
}

点击允许或不允许后 didChangeAuthorizationStatus 从未调用过

如果您在 Swift 3 上,则此方法的整个签名不正确。

这是您需要的:

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { 
    //your code 
}