CLLocationManager didFailWithError:啥错误会停止位置更新
Posted
技术标签:
【中文标题】CLLocationManager didFailWithError:啥错误会停止位置更新【英文标题】:CLLocationManager didFailWithError: what error stops location updatesCLLocationManager didFailWithError:什么错误会停止位置更新 【发布时间】:2014-02-20 06:12:23 【问题描述】:ios CLLocationManager
在其didFailWithError
方法中报告各种错误:
https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CoreLocationConstantsRef/Reference/reference.html#//apple_ref/c/econst/kCLErrorDenied
在文档中不清楚哪些错误(kCLErrorDenied
和 kCLErrorLocationUnknown
除外)会停止位置管理器和位置更新?
问候,
【问题讨论】:
链接已损坏。这是现在有效的:https://developer.apple.com/documentation/corelocation/cllocationmanagerdelegate/1423786-locationmanager/ 【参考方案1】:尝试打印您的错误对象描述。你会知道失败的原因是什么。可能的原因可能是您没有授予应用使用位置的权限,或者手动撤销了使用位置的权限。
如果您在模拟器中失败,请确保模拟器指向某个自定义位置。
【讨论】:
我确实知道文档中的错误意味着什么,我可以强制其中一些错误(上面提到的两个)。但我的问题是,这些错误中哪些会停止位置管理器,哪些仅用于提供信息,不会停止位置管理器。例如,如果您想记录 GPS 轨迹,这很有趣。【参考方案2】:根据我的经验,这些错误不会停止位置管理器。但是,您可能需要使用该函数来处理可能的授权更改
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
// here you call the function where you manage the location authorizations at the launch of the app
【讨论】:
以上是关于CLLocationManager didFailWithError:啥错误会停止位置更新的主要内容,如果未能解决你的问题,请参考以下文章
为啥'CLLocationManager.locationServicesEnabled()'默认为真?
Xcode 6 GM - CLLocationManager
CLLocationManager 和 CLGeoCoder
CLLocationManager:没有调用 didChangeAuthorization 和 didRangeBeacons