我们在最近的iOS 11项目中使用MapBox。在项目中,我们有一个导致大问题的现象。出于某种原因,对于每个位置更新,都会调用两次MapBox didUpdateUserLocation委托方法。
为了说明这个问题,我们添加了这个代码,它只是增加了一个类变量
#pragma mark -
#pragma mark MGLMapViewDelegate Methods
- (void)mapView:(MGLMapView *)mapView didUpdateUserLocation:(nullable
MGLUserLocation *)userLocation
{
NSLog(@"updatecounter = %i",updatecounter);
updatecounter++;
}
生成以下示例输出:
2018-02-22 22:50:14.210199+0100 didUpdateUserLocation:] [Line 1830] updatecounter = 3
2018-02-22 22:50:14.210511+0100 didUpdateUserLocation:] [Line 1830] updatecounter = 3
2018-02-22 22:50:15.184880+0100 didUpdateUserLocation:] [Line 1830] updatecounter = 4
2018-02-22 22:50:15.187484+0100 didUpdateUserLocation:] [Line 1830] updatecounter = 4
2018-02-22 22:50:16.186877+0100 didUpdateUserLocation:] [Line 1830] updatecounter = 5
2018-02-22 22:50:16.189279+0100 didUpdateUserLocation:] [Line 1830] updatecounter = 5
....
如果我们删除了与viewController的委托连接,则调用将停止。任何人都可以想到可能导致MapBox每次更新两次调用委托的原因吗?
任何帮助将不胜感激
谢谢, 斯蒂芬