我正在制作一个使用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;
如果您有任何解决方案来释放内存,请帮助我。
答案 0 :(得分:0)
我写信给他们询问这个,收到了这个回复:
在内部,C ++代码使用1个地图单例并保存地图 即使在iOS地图视图被销毁之后,实例也处于活动状态 - 您不能 强制C ++库在iOS / Android级别释放内存。 这个实施决定是在它出现的时候收回的 被认为更快速地进行地图恢复"程序 而不是一个小的内存占用。