【发布时间】:2018-10-16 09:18:39
【问题描述】:
当 locationManager 设置为 startMonitoringSignificantLocationChanges() 时,我无法在物理设备上显示位置。
一切都在模拟器中运行,但是当我让它在我的 iPhone 上运行时,没有返回坐标,如果我将它更改为 startUpdatingLocation() 它可以在我的物理设备上运行。
知道可能出了什么问题吗?
我的代码:
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
startReceivingSingificantLocationChanges()
}
func startReceivingSingificantLocationChanges() {
if !CLLocationManager.significantLocationChangeMonitoringAvailable() {
//the service is not available
print("Service is not available")
return
}
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.startMonitoringSignificantLocationChanges()
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let location = locations.first{
print(location.coordinate)
coordinatesLbl.text = "LAT:\(location.coordinate.latitude) LONG:\(location.coordinate.longitude)"
}
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == CLAuthorizationStatus.denied{
showLocationDisabledPopUp()
print("didChangeAuthorization")
}
}
【问题讨论】: