iOS 造成内存泄露的原因有哪些 |
您所在的位置:网站首页 › 造成内存故障的原因有哪些 › iOS 造成内存泄露的原因有哪些 |
内存泄漏,多数都是对象没有被释放,循环引用等问题,下面举例几种常见的内存泄漏问题 一、从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 |