? ? ? ? ?最近朋友給我看一個(gè)項(xiàng)目,場景是每次app啟動的時(shí)候首先加載首頁,然后在首頁的didload方法中注冊了幾個(gè)通知,然后呢有一個(gè)現(xiàn)象,是偶現(xiàn)的。就是經(jīng)常性那些通知方法會走2遍,導(dǎo)致UI彈窗多次被覆蓋,然后檢查卡斷點(diǎn)打印log的時(shí)候看通知也是只post了一次。然后我試了幾次發(fā)現(xiàn)這個(gè)觸發(fā)條件是token失效,重新登錄的時(shí)候是必現(xiàn)的。我就看了整個(gè)VC的生命周期和方法調(diào)用。token失效的時(shí)候重新設(shè)置了rootVC為loginVC,這時(shí)候首頁應(yīng)該是被釋放了。但是我寫了打印log,發(fā)現(xiàn)didload是被+1了。所以說設(shè)置rootVC的時(shí)候首頁試圖應(yīng)該是沒有釋放,我看一下首頁代碼,然后看到定時(shí)器是在dealloc中銷毀和置為nil的,我改到viewwilldisapear中以后,這個(gè)現(xiàn)象就沒有了。但是因?yàn)槭醉摰奶厥庑?,他的首頁又需要?jì)時(shí)ui的展示,不停的push/pop,定時(shí)器不能的創(chuàng)建/銷毀也會消耗性能。所以我就給他發(fā)了我在網(wǎng)上找的定時(shí)器封裝工具,通過傳target的方法,銷毀定時(shí)器。而且不需要自己做多余的處理。git下載地址
定時(shí)器NSTimer不能在dealloc中銷毀引發(fā)的問題
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。