2014-11-12 25 views
5

Ich mache eine iOS App, die SKMap (Skobbler) verwendet. Meine App verbraucht viel Speicher, wenn SKMap geöffnet wird. Darüber hinaus gibt nicht den Speicher frei, wenn ich auf andere Seite der Anwendung verschieben.Freigabe Speicher von SKMap (Skobbler) in iOS App

Ich habe einige Code in viewWillDisappear Methodenspeicher von SKMap freizugeben,

[[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; 

Wenn Sie eine Lösung haben für diesen Speicher freizugeben, bitte helfen Sie mir.

+0

Ich sehe ein ähnliches Problem, das meine Anwendung zum Absturz auf dem iPhone 4S verursacht - haben Sie eine Zuordnungs-Ablaufverfolgung von Profiling mit Instrumenten? Auch welche Version des SDK verwendest du? –

Antwort

0

ich sie schrieb, darüber zu fragen, erhielt diese Antwort:

Intern wird der C++ Code verwendet 1 Karte Singleton und wird die Karte Instanz aktiv, auch nach dem iOS-Kartenansicht zerstört halten - man kann nicht Erzwingen Sie, dass die C++ - Bibliothek den Speicher auf der iOS-/Android-Ebene freigibt. Diese Implementierung Entscheidung wurde in den Tagen zurückgenommen, als es als wichtiger angesehen wurde, eine schnelle "Map Restore" Prozedur als eine kleine Speicherfläche zu haben.