我希望我的程序在地图上显示用户位置。它开始工作然后随机停止所以我添加下面的代码试图解决它,但我有问题。提前致谢!
override func viewDidLoad()
{
super.viewDidLoad()
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
if CLLocationManager.locationServicesEnabled()
{
let status: CLAuthorizationStatus = CLLocationManager.authorizationStatus()
if status == CLAuthorizationStatus.NotDetermined
{
locationManager.requestAlwaysAuthorization()
}
} else {
print("locationServices disenabled")
}
locationManager.startUpdatingLocation()
self.locationManager.startUpdatingLocation()
self.mapView.showsUserLocation = true
mapView.delegate = self
centerMapOnLocation(initialLocation)
addBoundry()
}
答案 0 :(得分:11)
你需要打电话,
locationManager.requestAlwaysAuthorization()
以及
locationManager.requestWhenInUseAuthorization()
在前景中顺利使用位置!!!
并且您不需要两个实例来调用startupdatinglocation
。留一个。你应该使用实例或全局变量而不是local来获取整个范围内的位置。
更新:
您必须在info.plist
中设置两个密钥,例如NSLocationAlwaysUsageDescription
和NSLocationWhenInUseUsageDescription
及其使用说明。
答案 1 :(得分:4)
我遇到了同样的问题,即使在info.plist中设置了NSLocationAlwaysUsageDescription
和NSLocationWhenInUseUsageDescription
也是如此。我的调试器告诉我也设置NSLocationAlwaysAndWhenInUseUsageDescription
...所以我做了。它奏效了!
答案 2 :(得分:1)