2014-11-12 12 views
5

Sto creando un'app per iOS che utilizza SKMap (Skobbler). La mia app consuma molta memoria quando si apre SKMap. Inoltre, non rilascia la memoria quando mi sposto in un'altra pagina dell'applicazione.Memoria di rilascio di SKMap (Skobbler) nell'app per iOS

ho messo un po 'di codice nel metodo viewWillDisappear per liberare la memoria di 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; 

Se avete qualche soluzione per liberare memoria per questo, ti prego, aiutami.

+0

Sto riscontrando un problema simile che causa l'arresto anomalo della mia applicazione su iPhone 4S: si dispone di una traccia di allocazioni dalla creazione di profili con Strumenti? Inoltre quale versione dell'SDK stai usando? –

risposta

0

ho scritto loro per chiedere informazioni su questo, ha ricevuto questa risposta:

Internamente il codice C++ utilizza 1 mappa Singleton e terrà l'istanza mappa attiva anche dopo la visualizzazione della mappa iOS è distrutta - non si può forzare la libreria C++ per rilasciare la memoria a livello iOS/Android. Questa decisione di implementazione è stata ripresa nei giorni in cui era considerato più importante avere una procedura "ripristino mappe" veloce di un ingombro di memoria ridotto.