2013-09-27 11 views
5

Ich habe die App hochgeladen und es abgelehnt bekommen sagenEXC_BAD_ACCESS (SIGSEGV) - KERN_INVALID_ADDRESS

Wir fanden, dass Ihre App auf dem iPad mit iOS abgestürzt 7, die mit den App Store Richtlinien für Bewertungen nicht in Übereinstimmung ist.

Nun die Zeit, als ich hochgeladen habe, iOS7 wurde nicht gestartet.

Der Crash-Bericht sagt

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Subtype: KERN_INVALID_ADDRESS at 0xb1b1f20b 

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 libobjc.A.dylib     0x3a2f5b26 objc_msgSend + 6 
1 MapKit       0x30ca46a6 -[MKMapView mapViewDidFinishLoadingTiles:] + 46 
2 VectorKit      0x376bbaf4 -[VKTileSource didFinishWithNetwork] + 68 
3 VectorKit      0x376bc196 __32-[VKTileSource performDownload:]_block_invoke126 + 38 
4 GeoServices      0x345b6fdc ___ZNK49-[GEOTileLoaderInternal _loadedTile:forKey:info:]66__49-[GEOTileLoaderInternal _loadedTile:forKey:info:]_block_invoke3$_1clERKN8LoadItem9RequesterE_block_invoke_2 + 52 
5 libdispatch.dylib    0x3a7ddd78 _dispatch_call_block_and_release + 8 
6 libdispatch.dylib    0x3a7ddd64 _dispatch_client_callout + 20 
7 libdispatch.dylib    0x3a7e47bc _dispatch_main_queue_callback_4CF$VARIANT$mp + 264 
8 CoreFoundation     0x2fab881c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4 
9 CoreFoundation     0x2fab70f0 __CFRunLoopRun + 1296 
10 CoreFoundation     0x2fa21ce2 CFRunLoopRunSpecific + 518 
11 CoreFoundation     0x2fa21ac6 CFRunLoopRunInMode + 102 
12 GraphicsServices    0x3471c27e GSEventRunModal + 134 
13 UIKit       0x322c3a3c UIApplicationMain + 1132 

In Absturz wir MapKit 0x30ca46a6 -[MKMapView mapViewDidFinishLoadingTiles:] sehen.

Gibt MapKit ein Problem?

Für MapKit, unten ist, was ich habe

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.title = @"Location"; 
    // Do any additional setup after loading the view. 
    CLLocationCoordinate2D cords = {29.32511601390379, 48.08847418705136}; 
    MKCoordinateSpan span = {0.008400,0.008400}; 
    region = (MKCoordinateRegion) {cords,span}; 
    mapView.showsUserLocation = YES; 
    [mapView setRegion:region animated:YES]; 
    [mapView setDelegate:self]; 

    DisplayMap *ann = [[DisplayMap alloc] init]; 
    ann.coordinate = region.center; 
    [mapView addAnnotation:ann]; 
} 

Auch habe ich nicht dealloc in mapkitviewcontroller. Ist das gut? Ich frage, da dieser Fehler mit der Speicherverwaltung zusammenhängt.

Meine App hatte 5 Tabs. Die ersten 4 Registerkarten sind nur UIWebView. Bei der Webansicht habe ich festgestellt, dass ich webview nicht in dealloc eingefügt habe. Unten ist, was ich in webview hatte,

- (void)dealloc { 
    [super dealloc]; 
} 

Im Moment habe ich nicht iOS 7 auf meinem xcode zu. Ich muss das herunterladen, dachte aber vorher nach zu fragen.

Hinweis: Alles ist perfekt funktioniert mit iOS 6.

Irgendwelche Vermutungen, warum ich diese Störung erhalte?

Antwort

0

Wenn ich mapView in dealloc setzen, wird das Problem gelöst.

Bei weiterer Untersuchung stellte sich auch heraus, dass ich keinen Titel für DisplayMap hinzugefügt habe.

DisplayMap *ann = [[DisplayMap alloc] init]; 
ann.title = @"My Location"; 
+1

hast du es explizit ausgelassen? Ich habe das gleiche Problem, Absturz in einem Crittercism-Bericht zu sehen, aber nicht in der Lage, es selbst zu reproduzieren –

+0

@HenrikHartz: früher hatte ich 'Ann.title = @" "' –

+0

@HenrikHartz haben Sie die Ursache gefunden? Ich sehe dasselbe Problem in einem Crashlytics-Bericht, aber nicht in der Lage, es selbst zu reproduzieren. – Chris

4

Wurde der Kartenansichtsdelegat auf Null gesetzt, bevor Sie von der Seite weg navigieren. Außerdem denke ich, es gibt ein Problem mit der Speicherverwaltung bei IOS-Karten. So ist es besser, Karten in der dealloc Methode freizugeben.

+0

hmmm ... Ich denke auch, wie das ... –

+0

ich das Problem, indem Sie die Kartenansicht Delegierten zu null in meinen Delegierten dealloc Methode gelöst. Für mich macht das keinen großen Sinn, da die Implementierung von MKMapView in Apple einen schwachen Verweis auf den Delegaten beibehalten sollte. Aber wer weiß, vielleicht gibt es in der iOS 7 MKMapView-Implementierung Buggy-Code. – Chris