2012-09-26 15 views
6

Opracowujemy aplikację na iPada, zaczynając od widoku mapy z adnotacjami.IOS 6 MKMapView ulega awarii w [EAGLContext setCurrentContext]

Korzystając z scenorysu, gdy przełączymy się na inny widok, który ma rozwiązanie oparte na mapach OpenGL (shinobi). Po powrocie do widoku z mapą nie ma problemu, dopóki nie dotkniesz mapy, aby ją przenieść. Gdy próbujemy przenieść mapę, zawiesza się z wyjątkiem exc_bad_access pod adresem [EAGLContext setCurrentContext]

Jakieś pomysły?

Oto część dziennika katastrofy:

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

Mam także do czynienia z tą samą sytuacją. proszę o pomoc –

Odpowiedz

7

Pracuję dla Shinobi, a my bada ten - to częściowo spowodowane Apple kodu mapy prowadzący trzymać naszego GL-context. Jako tymczasowe obejście problemu, można utworzyć podklasę a ShinobiChart i Nil-out kontekście GL w metodzie dealloc wykresu, tak jak poniżej:

- (void) dealloc { 
    [super dealloc]; 

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

lub jeśli używasz Arc (od wysyłania dealloc nie jest dozwolone):

#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 

Nadzieja to pomaga, ale nie bezpośrednio skontaktować się z nami - będziemy mieć pełną poprawkę w naszym następnym wydaniu.

+2

Mam dokładnie ten sam problem, ale powyższe rozwiązanie go nie rozwiązuje :( – theLastNightTrain

+0

Aktualizacja do wersji 2.1.1 również tego nie naprawiła – theLastNightTrain

+0

Witam - skontaktuj się z nami za pośrednictwem naszej strony internetowej (shinobicontrols.com) jeśli nadal masz trudności –

0

dla tych, którzy nie działa nawet próbował [EAGLContext setCurrentContext:nil]; na dealloc, spróbuj tego

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

EAGLContext powinna być ustawiona na głównym wątku.

Powiązane problemy