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既可。

相关推荐
鹤卿1231 小时前
谓词与正则表达式(OC)
ios·正则表达式·objective-c·xcode
秋雨梧桐叶落莳5 小时前
iOS——3GShare项目总结
学习·macos·ios·objective-c·cocoa
AIsoft_868821 小时前
iOS端录音转文字工具实测:自媒体创作者高效整理指南
ios·媒体
库奇噜啦呼1 天前
【iOS】Core Data
ios
2501_915106322 天前
TraceEagle 代理抓包教程 本机和手机的 HTTPS 抓包方法
网络协议·计算机网络·网络安全·ios·adb·https·udp
云逸_2 天前
Cinder:基于 Swift Macro 与 Mach-O Section 的解耦注册机制
ios·swift
末代iOS程序员华仔2 天前
从 Figma 到上架:使用 Codex 与 MCP 全流程实现 AI 聊天 App
flutter·ios·swift
极客猴子2 天前
苹果手机怎么快速总结长文本?iOS录音APP实测对比
ios·智能手机
一牛2 天前
Swift 循环引用
macos·ios
迷雾悠悠3 天前
企业微信iPad协议聚合聊天系统:从原理到实战开发指南
ios·企业微信·ipad