地图内存优化讨论

问题:现在有两个视图控制器,由视图控制器一,点击按钮,进入视图控制器二,视图控制器二显示地图,刚开始进入视图控制器二加载地图,内存瞬间增加30MB-40MB左右,整个页面就只显示了6个大头针,并开启了允许用户定位。当我点击大头针的时候,地图会缩放到更加具体的位置,并去除之前的大头针然后添加另外一种大头针,大概30个左右,现在内存是200MB了,当我点击返回按钮回到上一级,内存下降了,但是还保持在100MB左右,这里我尝试着在回到上级的时候,将代理,地图视图置nil,并去除地图视图,但是并没有任何效果?项目里并不存在循环引用问题。希望对地图有研究的大神给点思路,或者在地图内存优化这块,有没有什么好的建议?谢谢!

阅读 3.8k
1 个回答

这是MKMapView 的delegate致使mapView不被释放的问题,所以在ViewController的dealloc方法中要手动处理 MKMapView

-(void)dealloc {
    [self.mapView removeFromSuperview];
    self.mapView.delegate = nil;
    self.mapView = nil;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题