我有以下代码行来激活断点
[mapView addAnnotations:grabinstance.itemArray];
随机崩溃。 grabinstance.itemArray总是完全填充,并且当时永远不会更改,因为只有在阵列已满时才调用此代码。这个特定的时间被确认为数组中的323个项目。
NSZombieEnabled也找不到任何东西。
回溯位于下方,第1154行是上面的行。
#0 0x0126a372 in _insert ()
#1 0x0126a312 in _splitNode ()
#2 0x0126a3b7 in _insert ()
#3 0x011db253 in -[MKAnnotationContainerView addAnnotation:] ()
#4 0x011dfc2e in -[MKAnnotationContainerView addAnnotations:] ()
#5 0x011b0b30 in -[MKMapView addAnnotations:] ()
#6 0x00009257 in -[BigViewController plotItems] (self=0x614de90, _cmd=0x16464f) at /Users/zzzz/Documents/iPhone Projects/BigProject/Classes/BigViewController.m:1154
#7 0x005336c1 in _nsnote_callback ()
#8 0x01c18f99 in __CFXNotificationPost_old ()
#9 0x01b9833a in _CFXNotificationPostNotification ()
#10 0x00529266 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#11 0x00024071 in -[ItemGrabber parserDidEndDocument:] (self=0x617b540, _cmd=0x689aa3, parser=0xf6b4ab0) at /Users/zzzz/Documents/iPhone Projects/BigProject/Classes/ItemGrabber.m:267
答案 0 :(得分:9)
您应该使用 CLLocationCoordinate2DIsValid()检查您的注释:
if (CLLocationCoordinate2DIsValid(place.coordinate)) {
[_mapView addAnnotation:place];
} else {
NSLog(@"place %@ has invalid coordinates", place.name);
}
答案 1 :(得分:4)
Bug报告给Apple并且已被承认
答案 2 :(得分:1)
我也有同样的问题,我修复了它,问题在于我的位置,数组中的对象可能不包含有效位置,它们可能是垃圾值