大家好,我在我的UIViewController中有一个MKMapView。当我打开这个视图时,内存占用从20MB上升到100MB。在viewwilldisappear方法中,我添加了以下内容:
-(void)viewWillDisappear:(BOOL)animated{
[self.mapView release];
}
但是内存保持不变。它不会减少。
大家好,我在我的UIViewController中有一个MKMapView。当我打开这个视图时,内存占用从20MB上升到100MB。在viewwilldisappear方法中,我添加了以下内容:
-(void)viewWillDisappear:(BOOL)animated{
[self.mapView release];
}
MKMapviews 经常会泄漏。你需要像这样应用以下方法:
将地图视图的代理设置为nil,这将防止MKMapView向其发送消息。
self.mapView.showsUserLocation = NO;
self.mapView.delegate = nil;
[self.mapView removeFromSuperview];
self.mapView = nil;
当你收到内存警告时,你也可以更改地图类型。
这是苹果公司的说法。
在释放已设置委托的MKMapView对象之前,请记住将该对象的委托属性设置为nil。一个您可以这样做的地方是在释放地图视图的dealloc方法中。
MKMapView
中显示的任何数据,如注释?另外,在您的方法中,我缺少对[super viewWillDisappear:animated];
的调用。如果您能够更新,我建议您使用ARC,因为它会比自己处理内存管理更方便。 - rckoenes