iOS开发:MKMapView地图内存持续增加的释放解决办法
2018-03-01 15:55
615 查看
内存持续增加的释放解决办法
最近修改一个用到MKMapView的项目,内存一直占用过多,每次拖拽地图时还会增加占用,且一直无法释放。
经过两天的排查,最后锁定是创建的self.map对象在加载地图的时候,不断申请内存,但在View的生命期内不会释放。
查阅资料了解到removeFromSuperview可以释放内存,但remove的话地图会从父View上消失。
最后解决办法是在- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated中加入了两行代码
在移除self.map的同时,重新加载mapView,两行代码就可以达到释放内存的效果。
用Instruments测试显示,之前不能释放的内存可以释放了。下图中的Malloc 4.00MB 即为地图申请的内存,总共申请164M,释放132M后,程序平稳运行时的地图内存只需要28M。
后续: 大头针标注的点击事件会出现没有反应,怀疑是remove破坏了响应链,暂未找到解决办法。
地图缩放时出现错误提示
最近修改一个用到MKMapView的项目,内存一直占用过多,每次拖拽地图时还会增加占用,且一直无法释放。
经过两天的排查,最后锁定是创建的self.map对象在加载地图的时候,不断申请内存,但在View的生命期内不会释放。
查阅资料了解到removeFromSuperview可以释放内存,但remove的话地图会从父View上消失。
最后解决办法是在- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated中加入了两行代码
[self.map removeFromSuperview]; [self.view addSubview:mapView];
在移除self.map的同时,重新加载mapView,两行代码就可以达到释放内存的效果。
用Instruments测试显示,之前不能释放的内存可以释放了。下图中的Malloc 4.00MB 即为地图申请的内存,总共申请164M,释放132M后,程序平稳运行时的地图内存只需要28M。
后续: 大头针标注的点击事件会出现没有反应,怀疑是remove破坏了响应链,暂未找到解决办法。
地图缩放时出现错误提示
Terminating app due to uncaught exception 'NSGenericException', reason: '* Collection was mutated while being enumerated.' 原因可能是线程冲突,解决办法是添加标记,避免同时对地图执行操作,可参考: http://stackoverflow.com/questions/27273211/array-was-mutated-while-being-enumerated-swift
相关文章推荐
- iOS开发:MKMapView地图内存持续增加的释放解决办法
- iOS开发 iOS7显示偏差(UITableView下移)解决办法
- iOS开发 地图:MKMapView控件的使用
- iOS开发 地图MKMapView小Demo
- [绍棠]iOS开发-UITableViewCell(UICollectionViewItem)需要两个手指点击或者长按才可以选中,解决办法
- iOS开发-------地图固定位置显示附近微博(MKMapView 地图类)
- IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法
- IOS应用开发中的tips - MKMapView之设置地图以用户当前位置为中心
- iOS开发-UITableViewCell(UICollectionViewItem)需要两个手指点击或者长按才可以选中,解决办法
- iOS开发之Xcode的静态分析(Static Code Analysis)与常见内存隐患解决办法
- iOS软件开发之在UIScrollView上添加手势不能触发解决办法
- ios开发——长按按出两个UIAlertView的解决办法
- iOS 开发中 Whose view is not in the window hierarchy 错误的解决办法
- iOS开发 关于tableView加载图片时出现卡顿时的解决办法
- iOS开发- iOS7显示偏差(UITableView下移)解决办法
- ios开发——长按按出两个UIAlertView的解决办法
- [IOS开发记录]Whose view is not in the window hierarchy 错误的解决办法
- iOS开发之Xcode的静态分析(Static Code Analysis)与常见内存隐患解决办法
- IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法
- 打开键盘遮住View的问题解决方法-IOS开发