星空网 > 软件开发 > 操作系统

iOS开发:MKMapView地图内存持续增加的释放解决办法

最近修改一个用到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。

iOS开发:MKMapView地图内存持续增加的释放解决办法images/loading.gif' data-original="http://images.cnitblog.com/blog2015/636260/201504/271526472866623.png" width="800" />




原标题:iOS开发:MKMapView地图内存持续增加的释放解决办法

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

30亿帕拓逊净利润超过百亿环球易购:https://www.ikjzd.com/articles/91207
写给新卖家,Wish新账号提升销量的几个妙招!:https://www.ikjzd.com/articles/91208
最高10倍流量的Wish FBW海外仓帮你应对“美国退群”!:https://www.ikjzd.com/articles/9121
最后一轮贸易谈判:美国大摆“鸿门宴”,但吓唬不住中国!:https://www.ikjzd.com/articles/91210
又见中国威胁论,甲骨文大规模裁员或因政治原因:https://www.ikjzd.com/articles/91211
特朗普的口头贸易战什么时候才能停止?:https://www.ikjzd.com/articles/91216
三百元以内千兆路由器怎么选择?:https://www.vstour.cn/a/363184.html
千岛湖绿城度假酒店的简介:https://www.vstour.cn/a/363185.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流