使用HandyJSON导致的内存泄漏问题相关解决方法

在移动开发中,与服务器打交道是不可避免的,从服务器拿到的接口数据最终都会被我们解析成模型,现在比较常见的数据传输格式是json格式,对json格式的解析可以使用原生的解析方式,也可以使用第三方的,我们的项目中使用的是阿里开源的一个swift编写的解析框架--HandyJSON。

在使用过程中,使用instruments的Leak Checks工具对内存泄漏进行检测时发现了这个框架导致了不少的内存泄漏,如图1-1:


1-1 修复内存泄漏之前.png

这张图是在APP进入首页并将数据加载完毕时截取的,可以看到,HandyJSON一共导致了28个内存泄漏,如果把整个APP运行一遍,估计内存泄漏的个数会很多很多。

这是由于UnsafeMutableRawPointer没有释放导致的,在HandyJSON的GitHub上也有解决方法点击前往,解决方法如下:

在Leak Checks工具中显示了内存泄漏的了类名(Measuable)与方法名(_getBridgedPropertyList),我们找到HandyJSON中的这个类和方法,在里面进行释放UnsafeMutableRawPointer就好了,在方法中加上图1-2中的红框中的代码即可:

1-2 解决方法.png

添加完代码之后,我们重新检测内存泄漏的情况,发现如图1-3所示:

1-3 内存泄漏解决之后.png

同样是进入首页并将数据加载完毕,我们发现,关于HandyJSON导致的内存泄漏已经没有了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,046评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 1. 用ARC管理内存 ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5...
    Icec阅读 5,433评论 0 7
  • 我们很容易把拖延症和懒联系在一起,一个人只要有拖延症,我们就会说他懒,其实每个人都会有拖延症,只是程度不同。 拖延...
    刻意练习社区阅读 3,567评论 1 1
  • 昂克赛拉 型号:2017款 三厢 2.0L 自动旗舰型 指导价:16.29万 优惠:7000 裸车价格:15.59...
    89小哥阅读 1,228评论 0 0