ios – 单击“允许”后未调用didChangeAuthorizationStatus

前端之家收集整理的这篇文章主要介绍了ios – 单击“允许”后未调用didChangeAuthorizationStatus前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我实现谷歌地图和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 
}

猜你在找的iOS相关文章