我在视图控制器中有MKMapView,当我开始放大时,会占用大量内存 当我离开包含MKMapView的视图时,内存未被释放(我在我的应用程序中使用ARC)
修改:
我读了一些堆栈溢出答案,我必须把MKMapView放在AppDelegate中:
-(MKMapView*) mapView
{
if(_mapView == nil) {
_mapView = [[MKMapView alloc] init];
}
return _mapView;
}
并在包含MKMapView put
的viewController的viewWillDisappear中-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
XAppDelegate.mapView.delegate = nil;
[XAppDelegate.mapView removeFromSuperview];
}
但它没有解决我的问题。
答案 0 :(得分:1)
我见过的一个常见缺陷是MKOverlay强烈引用了MKOverlayView
/ MKOverlayRender
和MKMapView
。这会导致保留周期,因为MKMapView
也保留了对MKOverlay
实例的强引用。