2012-11-22 15 views
6

Mam dziwny problem z mapą google w mojej aplikacji dedykowanej dla iPada (z iOS6). Zrobiłem poziomy widok przewijania, wypełniony dwoma widokami. Jednym z nich jest widok informacji szczegółowych (tekst, nic specjalnego), a drugi widok to kontroler widoku z mapą google. Jest to uniwersalny schemat w mojej aplikacji (scrollview kompilacja z dwóch widoków) dla kilku różnych celów. Problem występuje, gdy zacznę testować aplikację na prawdziwym iPadzie z iOS6. Awaria aplikacji, gdy powinien wyświetlić widok przewijania. Ale nie od razu. Na początku widok przewijania jest wyświetlany poprawnie. Następnie chcę zbudować nowy widok przewijania z nowymi danymi. Jest również w porządku, a widok przewijania jest wyświetlany poprawnie. Po kilku operacji takiego mam zacząć odbierania coraz więcej dzienników błędów tak:Aplikacja wykorzystana do awarii MapKit na iOS6

failed to make complete framebuffer object 8cdd

Po kilku przebiegów Scrollview, awarii aplikacji bez żadnych dodatkowych błędów. Punkty edytor kodu w pliku main.m i następujący wiersz:

int retVal = UIApplicationMain(argc, argv, nil, nil);

proszę kierować do mnie, aby znaleźć to, co robię źle. Gdzie jest metoda viewDidLoad z moim zdaniem kontroler odpowiedzialny za wyświetlanie na mapie google:

-(void)viewDidLoad { 
mapView.mapType = MKMapTypeSatellite; 
mapView.showsUserLocation = YES; 

/* ANNOTATION (pin) */ 

CLLocationCoordinate2D annotationCoord; 

annotationCoord.latitude = [self.restaurant.latitude doubleValue]; 
annotationCoord.longitude = [self.restaurant.longitude doubleValue]; 

// a pin with the info. 

MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init]; 

annotationPoint.coordinate = annotationCoord; 
annotationPoint.title = self.restaurant.name; 

// add annotation to the map 

    [mapView performSelectorOnMainThread:@selector(addAnnotation:) 
            withObject:annotationPoint 
            waitUntilDone:YES]; 


[annotationPoint release]; 

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance (annotationCoord, 500, 500); 
[self.mapView setRegion:region animated:YES]; 

[super viewDidLoad]; 
} 

i nie mater jak wciskam kontroler widok z Google mapy do widoku. To zawsze rozbić moją aplikację :(`ve próbowała tak:.

[scrollView addSubview:self.googleMapViewController.view]; 

lub że:

[[self navigationController] pushViewController:self.googleMapViewController animated:YES]; 

Kiedy uruchomić aplikację na symulatorze, Pozostało wszystko w porządku jestem. przy użyciu XCode 4.5.1.

Odpowiedz

0

Miałem ten sam problem w jednym z moich projektów, który był spowodowany przez wyciek pamięci, widoki map zużywają dużo pamięci, jeśli ich nie usuniesz.Nie pojawia się na symulatorze ponieważ komputer może zużywać znacznie więcej pamięci.Należy pamiętać, aby pozbyć się widoków mapy, gdy już ich nie potrzebuję. Polecam także uruchamianie aplikacji przy pomocy Instruments (Leaks) - jest to niezwykle przydatne narzędzie w takich przypadkach.