柚子快報激活碼778899分享:iOS強引用引起的內(nèi)存泄漏
項目中遇到一個問題:
1.在A頁面的ViewDidLoad 方法里寫了一個接收通知的方法,如下圖: 然后在B頁面發(fā)送通知
(注:下圖的NOTI 是 [NSNotificationCenter defaultCenter] 的宏, 考慮一下可能有小白看這篇文章,特意說明一下?)
然后發(fā)現(xiàn)A頁面在成功接收通知后,執(zhí)行了很多遍“接收通知的方法”,就是上圖的?payMonthVipSuccess 方法走了很多遍。 (查找問題發(fā)現(xiàn),我打開幾次A頁面,payMonthVipSuccess方法就走了幾遍),然后定為問題為,離開A頁面后,通知沒有被移除,即沒有走頁面的?- (void)dealloc 方法
解決問題:
沒有走- (void)dealloc方法,是因為當(dāng)前頁面有強引用引起內(nèi)存泄漏,你可以理解為還有東西在,所以不可以移出。?
這種情況通常是A頁面有Block代碼,Block代碼里用了Self,而不是 weakSelf。如下圖
最后全局搜索A頁面的Block代碼,把Block代碼里的self全部改為weakSelf即可。
柚子快報激活碼778899分享:iOS強引用引起的內(nèi)存泄漏
精彩文章
評論可見,查看隱藏內(nèi)容
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。