当前位置: 首页 > article >正文

iOS强引用引起的内存泄漏

项目中遇到一个问题:

1.在A页面的ViewDidLoad 方法里写了一个接收通知的方法,如下图: 然后在B页面发送通知

(注:下图的NOTI[NSNotificationCenter defaultCenter] 的宏, 考虑一下可能有小白看这篇文章,特意说明一下😂)

然后发现A页面在成功接收通知后,执行了很多遍“接收通知的方法”,就是上图的 payMonthVipSuccess 方法走了很多遍。 (查找问题发现,我打开几次A页面,payMonthVipSuccess方法就走了几遍),然后定为问题为,离开A页面后,通知没有移出,即没有走页面的 - (void)dealloc 方法

解决问题:

- (void)dealloc方法,是因为当前页面有强引用引起内存泄漏,你可以理解为还有东西在,所以不可以移出。 

这种情况通常是A页面有Block代码,Block代码里用了Self,而不是 weakSelf。如下图

最后全局搜索A页面的Block代码,把Block代码里的self全部改为weakSelf既可。


http://www.kler.cn/a/147376.html

相关文章:

  • PostgreSQL TRUNCATE TABLE
  • 如何知道表之间的关系(为了知识图谱的构建)
  • EXCEL 或 WPS 列下划线转驼峰
  • Python常用魔术方法 (学习笔记)
  • Mac终端字体高亮、提示插件
  • 2024强化学习的结构化剪枝模型RL-Pruner原理及实践
  • 基于单片机设计的超声波测距仪(采用HC-SR04模块)
  • 【限时免费】20天拿下华为OD笔试之【双指针】2023Q1A-两数之和绝对值最小【欧弟算法】全网注释最详细分类最全的华为OD真题题解
  • 二十章多线程
  • 短视频获客系统成功分享,与其开发流程与涉及到的技术
  • stream流和方法引用
  • shell脚本正则表达式
  • 有一种浪漫,叫接触Linux
  • Verilog基本语法概述
  • 智慧工地管理系统加快推进工程建设项目全生命周期数字化
  • 抽象类的使用—模板设计模式 Java
  • 网络入门---网络的大致了解
  • JVM GC算法
  • pycharm安装PyQt5及其工具
  • Centos Download
  • Xshell连接VMware虚拟机中的CentOS
  • 【开源】基于Vue.js的海南旅游景点推荐系统的设计和实现
  • Java核心知识点整理大全19-笔记
  • 如何理解2023vivo开发者大会,使用Rust语言编写蓝河操作系统(BlueOS)?
  • ELK----日志分析
  • C语言——标识符