我在 View Controller 中有MKMapView,当我开始缩放时会占用大量内存
当我离开包含MKMapView的 View 时,内存不会释放(我在我的App中使用ARC)
编辑:
我读了一些我必须将MKMapView放入AppDelegate的堆栈溢出答案:
-(MKMapView*) mapView
{
if(_mapView == nil) {
_mapView = [[MKMapView alloc] init];
}
return _mapView;
}
并且在包含MKMapView的viewController的viewWillDisappear中
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
XAppDelegate.mapView.delegate = nil;
[XAppDelegate.mapView removeFromSuperview];
}
但这并不能解决我的问题。
最佳答案
我看到的一个常见缺陷是MKOverlay对MKOverlayView
/MKOverlayRender
和MKMapView
拥有强烈的引用。这会导致一个保留周期,因为MKMapView
也对MKOverlay
实例也有很强的引用。