美文网首页
ios内存泄漏情况以及解决方案

ios内存泄漏情况以及解决方案

作者: 廖燊 | 来源:发表于2020-04-23 17:03 被阅读0次

1.block 强引用导致内存内漏问题

本质:block是封装了调用函数以及调用函数的OC对象

如果block捕获了其他对象,就会把该对象包装成新的结构体,调用一个copy函数,产生strong强引用,引用着block,这时候block也引用着该对象。导致循环引用而内存泄漏。

代码示例:

Penson *penson = [[Penson alloc]init];

block = ^{

            self.penson;

}

解决办法:ARC下可以用 weakSelf ,__block 要将对象设置成nil ,unsafe_unretain也可以解决

2.定时器NSTime ,在退出页面的时候没有手动设置成self.timer invalidate,导致time一直存在内存中,压后台还在调用,导致内存泄漏,解决办法 调用自身的invalidate

3.在写OC的时候用到了 CF的类,用到,copy,create,的api,都需要手动释放

4.NSRunLoop保活中掉用了[[NSRunLoop currentRunLoop] run];导致内存泄漏,没有被释放

有哪里写错的请指出谢谢,还有哪些内存泄漏的请补充哈。

相关文章

网友评论

      本文标题:ios内存泄漏情况以及解决方案

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