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

2017-08-26  本文已影响0人  X_my

使用高德地图定位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设置成了这个类的属性,问题得到解决,仅供参考。

上一篇 下一篇

猜你喜欢

热点阅读