我希望我的程序在地图上显示用户位置。 它首先工作然后随机停止,所以我添加了下面的代码来尝试修复它,但我遇到了问题。提前致谢!
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()
}
您需要致电,
locationManager.requestAlwaysAuthorization()
还有
locationManager.requestWhenInUseAuthorization()
在前台也能顺利使用位置!!!
并且您不需要两个实例来调用
startupdatinglocation
。保留一个。您应该使用实例或全局变量而不是本地变量来获取整个范围内的位置。
更新:
您必须在
info.plist
中设置两个键,例如NSLocationAlwaysUsageDescription
和NSLocationWhenInUseUsageDescription
及其使用说明。
即使在 info.plist 中设置了
NSLocationAlwaysUsageDescription
和 NSLocationWhenInUseUsageDescription
,我也遇到了同样的问题。我的调试器告诉我还要设置 NSLocationAlwaysAndWhenInUseUsageDescription
...所以我就这么做了。成功了!