2014-11-12 38 views
5

Tworzę aplikację na iOS, która używa SKMap (Skobbler). Moja aplikacja zużywa dużo pamięci, gdy otwiera się SKMap. Ponadto nie zwalnia pamięci po przejściu na inną stronę aplikacji.Zwolnij pamięć SKMap (Skobbler) w aplikacji iOS

umieścić jakiś kod w metodzie viewWillDisappear aby zwolnić pamięć o SKMap,

[[SKRoutingService sharedInstance].mapView clearAllAnnotations]; 
[SKRoutingService sharedInstance].routingDelegate = nil; 
[SKRoutingService sharedInstance].navigationDelegate=nil; 
[[AudioService sharedInstance]cancel]; 
[[SKRoutingService sharedInstance]stopNavigation]; 
[[SKRoutingService sharedInstance]clearCurrentRoutes]; 
[[SKRoutingService sharedInstance]clearAllRoutesFromCache]; 
[SKRoutingService sharedInstance].mapView = nil; 

//self.mapView is SKMap 
self.mapView.settings.displayMode = SKMapDisplayMode2D; 
self.mapView.delegate=nil; 
[self.mapView removeFromSuperview]; 
self.mapView=nil; 

Jeśli masz jakieś rozwiązanie, aby zwolnić pamięć o tym, proszę mi pomóc.

+0

Widzę podobny problem, który powoduje awarię mojej aplikacji na iPhone 4S - czy masz ślad alokacji z profilowania z Instruments? Z której wersji pakietu SDK korzystasz? –

Odpowiedz

0

Pisałem je, aby zapytać o to, otrzymała tę odpowiedź:

Wewnętrznie kodu C++ używa 1 Mapa singleton i będzie posiadać instancji mapa aktywny nawet po iOS mapa jest zniszczona - nie można wymuś bibliotekę C++, aby zwolnić pamięć na poziomie iOS/Android. Ta decyzja implementacyjna została cofnięta w dniach, w których była uznawana za ważniejszą, aby mieć szybką procedurę "przywracania map" niż mały ślad pamięci.