在iOS应用程序中释放SKMap(Skobbler)的内存

时间:2014-11-12 12:54:45

标签: ios objective-c map skmaps

我正在制作一个使用SKMap(Skobbler)的iOS应用程序。当SKMap打开时,我的应用会占用大量内存。 当我移动到应用程序的其他页面时,更多内容不会释放内存。

我在viewWillDisappear方法中放了一些代码来释放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;

如果您有任何解决方案来释放内存,请帮助我。

1 个答案:

答案 0 :(得分:0)

我写信给他们询问这个,收到了这个回复:

  

在内部,C ++代码使用1个地图单例并保存地图   即使在iOS地图视图被销毁之后,实例也处于活动状态 - 您不能   强制C ++库在iOS / Android级别释放内存。   这个实施决定是在它出现的时候收回的   被认为更快速地进行地图恢复"程序   而不是一个小的内存占用。