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