我想我的程序显示用户在Map上的位置。它是在第一次工作,然后随机停止,所以我添加了下面的代码,试图修复它,但我有问题。提前感谢!
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()
}
4条答案
按热度按时间afdcj2ne1#
你要求打电话,
同样
在前景中也可以流畅地使用位置!!!
并且你不需要两个示例来调用
startupdatinglocation
。保留一个。你应该使用示例或全局变量而不是局部变量来获取整个作用域的位置。您必须在
info.plist
中设置两个键,如NSLocationAlwaysUsageDescription
和NSLocationWhenInUseUsageDescription
及其使用说明。q9yhzks02#
如果您想要“WhenInUse”通知,您只需在您的info.plist中添加“Privacy - Location When In Use Description”,但如果您想要“Always”访问您的info. plist,您的info.plist应该看起来像以下info.plist截图:
您不必添加任何请求授权,如requestAlwaysAuthorization或requestWhenInUseAuthorization
ecfdbz9o3#
我遇到了同样的问题,即使在info. plist中设置了
NSLocationAlwaysUsageDescription
和NSLocationWhenInUseUsageDescription
。我的调试器告诉我也要设置NSLocationAlwaysAndWhenInUseUsageDescription
...所以我就这么做了。成功了!wvt8vs2t4#
这是我的代码:
首先导入库:
举个小例子:
不要忘记在Info.plist中添加以下权限: