关于高德地图单次定位回调返回Code=5 "取消"的问题

使用高德地图定位SDK中的单次定位API:

- (BOOL)requestLocationWithReGeocode:(BOOL)withReGeocode completionBlock:(AMapLocatingCompletionBlock)completionBlock;

逆地理传YES时,block回调location有值,但是regeocode对象为空,且error如下:

Error Domain=AMapLocationErrorDomain Code=5 "取消" UserInfo={NSLocalizedDescription=取消}

造成这种情况的原因是逆地理信息还未获取到,但locationManager对象已经销毁。

解决方法很简单,即延长locationManager对象的生命周期,保证在逆地理信息获取过程中locationManager不要被销毁,比如设置成属性持有。

笔者的项目中将定位功能抽象成了一个类,这个类是单例,所以笔者将locationManager设置成了这个类的属性,问题得到解决,仅供参考。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容