我在 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/MKOverlayRenderMKMapView拥有强烈的引用。这会导致一个保留周期,因为MKMapView也对MKOverlay实例也有很强的引用。

10-08 06:00
查看更多