1.bug的出现情况:
程序一跑就crash掉了,log显示为数组越界
通过断点定位到bug出现在这一行代码:
[_mapView addAnnotations:newAnnotationList];
这就颇为尴尬了,这是百度的api,又不开源,鬼知道它为什么闪掉了...(若是自己的代码还能通过断点,再进一步缩小bug的范围),断点一过立马就闪了,有点懵,咋办?
2.解决
通过这个方法点进去发现百度地图api的官方有这么一行注释
/**
*向地图窗口添加一组标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
*@param annotations 要添加的标注数组
*/
- (void)addAnnotations:(NSArray *)annotations;
也就是说其会触发-mapView:viewForAnnotation:
至于- (void)addAnnotations:(NSArray *)annotations;因为不开源,看不到实现的代码,那是没办法的了,或许可以在-mapView:viewForAnnotation:这个方法找找原因,
3.最后我想说的是
遇到类似的问题,或许可以在下游代码中寻找解决的办法。
ps:上面那个问题解决了