zoukankan      html  css  js  c++  java
  • Analyze 静态分析工具中显示 大量的CF类型指针 内存leak 问题, Core Foundation 类型指针内存泄漏

    Analyze 静态分析工具中显示 大量的CF类型指针 内存leak 问题

     
    今天使用Analyze 看了下项目,
     
    解决办法,项目中使用了ARC,OC的指针类型我们完全不考虑release的问题,但是使用CF 的地方就不同,CF类型的指针我们是采用__bridge** 处理的,但是处理的时间还是出现了内存泄漏,

        CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook);

     
    使用了必须采用CFRelease(results);进行释放,ARC帮你不会做这个工作的。
     
     NSString * personPhone = (__bridge NSString*)personPhoneC;
    类似于 weak ,需要释放的,调用CFRelease

    NSString * personPhoneLabel = (__bridge_transfer NSString *)personPhoneLabelCF;

    _bridge_transfer已经引入了新指针的所有权,并且已经对旧指针的所有权进行了释放,无需要在CFRelease;

    总之,你还是黄金法则,你用了啥就管理啥,是OC的东西,开了ARC ,系统帮你管理,CF 的东西,开了ARC也是不能帮你做内存管理的,你用了啥就自己去管理。

    最后: 生活就是碎片,有了漏洞就去补呀,碎片多了,早晚会死掉的...

  • 相关阅读:
    Android进程生命周期与ADJ
    四大组件之综述
    Linux进程pid分配法
    Linux的进程管理
    Linux硬盘管理
    Linux用户管理
    Linux命令行使用
    vim技巧5 常用操作
    vim技巧4 删除/保留文本中匹配行
    如何绘制UML图?
  • 原文地址:https://www.cnblogs.com/ccguo/p/3944919.html
Copyright © 2011-2022 走看看