iOS 造成内存泄露的原因有哪些

您所在的位置:网站首页 造成内存故障的原因有哪些 iOS 造成内存泄露的原因有哪些

iOS 造成内存泄露的原因有哪些

2024-07-07 13:58| 来源: 网络整理| 查看: 265

内存泄漏,多数都是对象没有被释放,循环引用等问题,下面举例几种常见的内存泄漏问题

一、从AFNet  

在封装网络请求类时需注意的是需要将请求队列管理者AFHTTPSessionManager声明为单例创建形式。进行全局管理,防止内存泄漏

二、Block循环引用

防止Block循环引用就是要防止对象之间引用的闭环出现。比如:MJRefresh,

self--->self.tableView--->self.tableView.mj_header--->self.tableView.mj_header.refreshingBlock--->self

相应的对于自定义View中的一些Block传值问题同样需要注意,与上述类似,比如:cell.block

三、delegate循环引用问题

viewcontroller通过strong指针拥有一个UITableview,tableview的datasource和delegate都是weak指针,指向viewcontroller,防止回环; 

四、NSTimer循环引用

对于定时器NSTimer,需要注意的是dealloc 只会在当前对象彻底释放的时候才会调用,我们需要在外部手动的释放,避免相互等待

五、非OC对象内存处理

比如:CGImageRef类型变量非OC对象,其需要手动执行释放操作CGImageRelease(ref)

六、大次数循环内存暴涨问题

记得有道比较经典的面试题,查看如下代码有何问题:

1 2 3 4 5 6 for  (int i = 0; i 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3