2010-11-01 5 views
8

Uno dei crash più frequenti della mia app live è un crash su MKMapView. Si blocca con il metodo interno -[MKMapView mapTileViewDidFinishLoading:]. Durante il mio test non sono riuscito a rintracciare l'incidente ma è molto frequente nei rapporti sugli arresti anomali su iTunes Connect. Qualche esperienza in questo incidente? È solo una mappa molto semplice che mostra esattamente un'annotazione.Ho bisogno di aiuto con un crash di MKMapView

Ecco la stacktrace completa di questo incidente:

Exception Type: EXC_BAD_ACCESS (SIGBUS) 
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000009 
Crashed Thread: 0 

Thread 0 Crashed: 
0 libobjc.A.dylib     0x339737d8 objc_msgSend + 16 
1 MapKit       0x345709ec -[MKMapView mapTileViewDidFinishLoading:] 
2 CoreFoundation     0x344492e4 -[NSObject(NSObject) performSelector:withObject:] 
3 Foundation      0x3326981e __NSThreadPerformPerform 
4 CoreFoundation     0x34460f1e __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 
5 CoreFoundation     0x34432ba0 __CFRunLoopDoSources0 
6 CoreFoundation     0x34432444 __CFRunLoopRun 
7 CoreFoundation     0x34432270 CFRunLoopRunSpecific 
8 CoreFoundation     0x34432178 CFRunLoopRunInMode 
9 GraphicsServices    0x3026b5ec GSEventRunModal 
10 GraphicsServices    0x3026b698 GSEventRun 
11 UIKit       0x31ad011c -[UIApplication _run] 
12 UIKit       0x31ace128 UIApplicationMain 
13 MYApp       0x00002e08 main + 36 
14 MYApp       0x00002dd8 start + 32 
+0

Potrebbe valere la pena condividere alcune ... –

+0

sto sperimentando questo stesso problema. Sta succedendo quando rilasci la mappa? Stai usando sovrapposizioni o annotazioni? – matheeeny

risposta

11

Credo di aver risolto questo problema nella mia propria applicazione. Sembra che this post abbia la soluzione e la spiegazione corrette.

Il messaggio che causa l'errore nella mia applicazione è stato 'mapViewDidFinishLoadingMap' che è un messaggio di MKMapViewDelegate. Prova a impostare il delegato mapView su 'nil' prima nel metodo dealloc della tua vista.

+0

Grazie per la risposta. Hai ragione. Non ho impostato il delegato su zero prima di rilasciare la mappa. Proverò questo e ti informerò di eventuali novità. – AlexVogel

+0

OK ora 1 mese dopo l'implementazione delle soluzioni e nessun nuovo bug report e si può dire che questo funziona. – AlexVogel

+0

Grazie amico .. Mi hai salvato .. :) – EmptyStack

0

Ho anche dovuto impostare il delegato su nil in viewDidDisappear per risolvere il problema.

1

solo fare questo si risolve il problema al 100%

-(void) viewWillDisappear:(BOOL)animated 
{ 
    self.mapView.delegate = nil; 
    mapView=Nil; 
    NSLog(@"viewWillDisappear"); 

} 
+0

Non dimenticare di chiamare '[super viewWillDisappear: animated]' – x2on