2012-09-26 11 views
6

Wir entwickeln eine iPad-Anwendung ausgehend von der Kartenansicht mit Anmerkungen.IOS 6 MKMapView stürzt ab auf [EAGLContext setCurrentContext]

Mithilfe von Storyboard, wenn wir zu einer anderen Ansicht wechseln, die eine OpenGL basierte Charting-Lösung (Shinobi) hat. Bei der Rückkehr zu der Ansicht mit Karte hat es kein Problem, bis Sie es auf der Karte berühren, um es zu verschieben. Während wir versuchen, die Karte zu verschieben, stürzt sie mit der Ausnahme exc_bad_access ab bei [EAGLContext setCurrentContext]

Irgendwelche Ideen? Hier

ist der Teil des Crash-Protokoll:

OS Version:  iOS 6.0 (10A403) 
Report Version: 104 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000c 
Crashed Thread: 0 

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 OpenGLES      0x39974b12 +[EAGLContext setCurrentContext:] + 74 
1 VectorKit      0x32c64f0c -[VGLGPU setPaused:] + 120 
2 VectorKit      0x32c54db8 -[VKMainLoop updateLinkState] + 492 
3 VectorKit      0x32c54950 -[VKScreenCanvas _updateDisplayStatus:] + 104 
4 VectorKit      0x32ccea9a -[VKScreenCanvas setGesturing:] + 254 
5 MapKit       0x34defc3c -[MKMapView _willStartUserInteraction] + 48 
6 MapKit       0x34de891a -[MKMapGestureController beginGesturing] + 50 
7 MapKit       0x34de8c6c -[MKMapGestureController handlePan:] + 252 
8 UIKit       0x379ead2c _UIGestureRecognizerSendActions + 124 
9 UIKit       0x379b23d8 -[UIGestureRecognizer _updateGestureWithEvent:] + 388 
10 UIKit       0x37b9f474 ... 
+0

Ich bin auch mit der gleichen Situation konfrontiert. jemand Hilfe bitte –

Antwort

7

ich für Shinobi arbeiten und wir haben dies untersucht, - es teilweise ist auf Apples Kartencode zu halten halten unsere GL-Kontext. Als vorübergehende Lösung können Sie eine Unterklasse einer ShinobiChart und Null-out des GL-Kontext im dealloc Methode des Diagramm erstellen, etwa so:

- (void) dealloc { 
    [super dealloc]; 

    [EAGLContext setCurrentContext:nil]; // must be after dealloc 
} 

oder wenn Sie ARC verwenden, (da dealloc Senden nicht ist erlaubt):

#import <ShinobiCharts/SChartCanvas.h> 

@interface ShinobiChartGl : ShinobiChart 
@end 

@implementation ShinobiChartGl 

- (void) dealloc 
{ 
    [self.canvas.glView removeFromSuperview]; 

    self.canvas.glView = nil; // force glView dealloc 

    [EAGLContext setCurrentContext:nil]; 
} 

@end 

hoffe, das hilft, aber uns direkt in Verbindung, - wir eine vollständige fix out in unserer nächsten Version haben werden.

+2

Ich habe genau dieses Problem, aber die obige Lösung löst es nicht :( – theLastNightTrain

+0

Upgrade auf 2.1.1 hat es auch nicht behoben. – theLastNightTrain

+0

Hallo - kontaktieren Sie uns über unsere Website (shinobicontrols.com) wenn du immer noch Schwierigkeiten hast –

0

für diejenigen, die nicht selbst [EAGLContext setCurrentContext:nil]; auf dealloc versucht arbeiten, versuchen Sie diese

dispatch_async(dispatch_get_main_queue(), ^{ 
     [EAGLContext setCurrentContext:nil]; 
    }); 

EAGLContext auf Hauptthread eingestellt werden sollen.

Verwandte Themen