我在我的一个应用程序中使用 HERE map 。而且我必须至少在 3-4 个屏幕上显示 map 。因此内存中会一直加载 3-4 个 map 实例。
我注意到加载一个 HERE map 实例会消耗多达 50MB 的内存。一旦我移动到其他屏幕,就会加载两个 map 实例。内存跳到 100MB 等等。最后,在使用一段时间后,应用程序因内存问题而崩溃。
“2017 年收到内存压力通知(严重)”
我正在通过 pod 添加购买的 HERE map 版本。这有什么区别吗?
还有一件事我注意到,每次我更改 HERE map 的框架,即增加/减少它的高度,它似乎重新加载 map ,这再次消耗大量内存。
有人用 HERE map ios 版本遇到过这个问题吗??
最佳答案
我在 iOS 中找到了释放内存压力的解决方案(HereMap)。
我在我的应用程序中使用了 3 个 map (HereMap) 屏幕,这个解决方案对我有效并且释放大约 100MB 的内存。
您需要在 viewDidAppear
中初始化您的 map ,并在 viewDidDisappear
中删除您的 map 。
我在我的应用程序中使用了 3 个 map ,在
中使用了初始化 View-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
dispatch_async(dispatch_get_main_queue(), ^{
if (self->mapView == nil) {
self->mapView = [[NMAMapView alloc] initWithFrame:self.view.frame];
[self.view addSubview:self->mapView];
[self.view sendSubviewToBack:self->mapView];
}
[self mapSetup];
});
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[self removeMemoryForMapView];
}
-(void)removeMemoryForMapView {
mapView.positionIndicator.visible = false;
mapView.landmarksVisible = false;
mapView.delegate = nil;
mapView.gestureDelegate = nil;
mapView.safetySpotsVisible = false;
[mapView setVisibility:false forPoiCategory:NMAMapPoiCategoryAll];
[mapView removeFromSuperview];
mapView = nil;
}
关于ios - HERE map ios 的内存压力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47043275/