3

大家好,我的 uiviewcontroller 中有一个 MKMapView。当我打开 uiview 时,内存堆从 20 Mb 上升到 100 Mb。在 viewwilldisappear 上,我添加了以下内容:

-(void)viewWillDisappear:(BOOL)animated{
     [self.mapView release];
}

但记忆保持不变。它不会减少。

4

1 回答 1

15

MKMapviews 总是被发现是泄漏的。你需要应用这样的东西

将地图视图的委托设置为 nil,这将阻止 MKMapView 向其发送消息。

self.mapView.showsUserLocation = NO;
self.mapView.delegate = nil;
[self.mapView removeFromSuperview];
self.mapView = nil;

您也可以在收到内存警告时更改地图类型

苹果是这样说的

在释放您已为其设置委托的 MKMapView 对象之前,请记住将该对象的委托属性设置为 nil。您可以在其中处理地图视图的 dealloc 方法中执行此操作。

于 2013-11-11T10:58:12.793 回答