【发布时间】:2016-11-13 19:59:50
【问题描述】:
在请求位置权限时出现错误:“尝试在不提示位置授权的情况下启动 MapKit 位置更新。必须首先调用 -[CLLocationManager requestWhenInUseAuthorization] 或 -[CLLocationManager requestAlwaysAuthorization]。”问题是我已经这样做了,并且在我为完全不同的东西添加了一个 url 方案之前它工作得很好。
这是在我的 ViewController 中:
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.requestAlwaysAuthorization()
self.locationManager.startUpdatingLocation()
self.mapView.showsUserLocation = true
//your loc
mapView.delegate = self
let initialLocation = CLLocation(latitude: 39, longitude: 77)
centerMapOnLocation(initialLocation)
}
【问题讨论】:
-
错误是什么?为了帮助您,我们需要一些详细信息
-
requestAlwaysAuthorization() 向用户显示一个对话框,即使他们是世界上最快的用户,我认为他们无法在 startUpdatingLocation( ) 在下一行代码中执行。如果用户不授予权限怎么办?关于如何实现请求授权的教程和问题数以百万计,阅读它们,并不像您拥有的几行代码那么简单。
标签: ios swift permissions location mapkit