美文网首页
iOS开发之OC中的内存泄漏

iOS开发之OC中的内存泄漏

作者: 划满伤痕的天空 | 来源:发表于2016-11-23 14:44 被阅读0次

造成内存泄漏大致有以下几种原因

1. CF类型内存

注意以creat,copy作为关键字的函数都是需要释放内存的,注意配对使用。比如:CGColorCreate<-->CGColorRelease

2. MRC内存使用

3. ARC导致的循环引用 block,delegate,NSTimer,CGD 都会造成循环引用

项目中遇到的典型内存泄漏(本例中是用的是ARC):

图中标记为红色的1、2 使用在了block中,未添加__weak而造成循环引用,

而3所示部分使用了CTFontCreateWithName方法导致retain,确没有相对应release进行释放

修改后的代码如下:增加__weak 和 CFRelease解决循环引用和retain导致的内存泄漏

检测内存泄漏的一篇很好的博客:

http://www.jianshu.com/p/e9d989c12ff8

相关文章

  • iOS开发之OC中的内存泄漏

    造成内存泄漏大致有以下几种原因 1. CF类型内存 注意以creat,copy作为关键字的函数都是需要释放内存的,...

  • instruments - leaks

    iOS开发中,难免会出现内存泄漏的情况,此处通过instruments 中的 leaks工具来检测程序的内存泄漏问...

  • iOS之从MRC到ARC内存管理详解

    概述 在iOS中开发中,我们或多或少都听说过内存管理。iOS的内存管理一般指的是OC对象的内存管理,因为OC对象分...

  • iOS 内存泄漏之循环应用

    iOS中的内存泄漏可以分为两种: 被泄漏的内存已经没有对象对其持有,但是没有正常释放,主要是OC对象与C语言转换造...

  • Instruments 之 Memory

    在 iOS 开发中,内存泄漏的检测基本是 APP 功能开发完成之后的必做项目。内存泄漏的检测手段很多,这里就讲讲如...

  • iOS内存泄漏

    iOS开发中,内存泄漏的问题常常遇到. 轻则影响性能,重则导致crash.那么,有哪些方法可以有效的检测内存泄漏的...

  • UIWebView内存泄漏问题

    iOS开发中,使用JSContext有时会导致内存泄漏问题,比如: _context[@"method"] = s...

  • 关于内存泄漏,还有哪些是你不知道的?

    内存泄漏问题一直是项目开发中的一大问题,本文力求帮助从事过一段时间工作的iOS开发者快速寻找App中的内存泄漏问题...

  • iOS 内存泄漏三两事

    iOS 内存泄漏三两事 iOS 内存泄漏三两事

  • Android 中常见的内存泄漏总结

    在 Android 开发中,稍有不慎就容易引起内存泄漏,我们经常听到内存泄漏,但是什么是内存泄漏呢? 内存泄漏:无...

网友评论

      本文标题:iOS开发之OC中的内存泄漏

      本文链接:https://www.haomeiwen.com/subject/apkvpttx.html