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

相关推荐
Magnetic_h9 小时前
【iOS】方法与消息底层分析
笔记·学习·macos·ios·objective-c·cocoa
MaoJiu16 小时前
Flutter与原生端的通信
flutter·ios
iReaShare17 小时前
如何将 iPhone 备份到云端:完整指南
ios
小赵小赵福星高照~18 小时前
iOS UI视图面试相关
ui·ios·面试
杂雾无尘1 天前
苹果高管揭示苹果背后秘密:苹果为何不涉足搜索引擎领域?
ios·apple
二流小码农1 天前
鸿蒙开发:一键更新,让应用无需提交应用市场即可下载安装
android·ios·harmonyos
2501_915921431 天前
没有Mac如何完成iOS 上架:iOS App 上架App Store流程
android·ios·小程序·https·uni-app·iphone·webview
初级代码游戏2 天前
Maui劝退:用windows直接真机调试iOS,无须和Mac配对
macos·ios·配置·maui·热重载
fundroid3 天前
Swift 进军 Android,Kotlin 该如何应对?
android·ios
形影相吊3 天前
iOS防截屏实战
ios