MKMapView аварийно завершает работу с EXC_BAD_ACCESS - PullRequest
6 голосов
/ 17 ноября 2010

У меня есть следующая строка кода, которая активирует точку останова

[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

Ответы [ 3 ]

9 голосов
/ 20 января 2012

Вы должны проверить свои аннотации, используя CLLocationCoordinate2DIsValid () :

if (CLLocationCoordinate2DIsValid(place.coordinate)) {
    [_mapView addAnnotation:place];
} else {
    NSLog(@"place %@ has invalid coordinates", place.name);
}
4 голосов
/ 23 ноября 2010

Ошибка сообщена в Apple и подтверждена

1 голос
/ 03 октября 2011

У меня тоже была такая же проблема, и я ее исправил, Проблема была с моими местоположениями, Объекты в массиве могут не содержать допустимых местоположений, Они могут быть значениями мусора

...