關(guān)于NSTimer

Timer使用注意事項(xiàng):
1.被VC持有,當(dāng)頁面消失,倒計(jì)時(shí)未結(jié)束,未被銷毀,導(dǎo)致VC不被dealloc。
VC1推出VC2a,VC2a有一個(gè)NSTimer,timer,從VC2a返回VC1,此時(shí)VC2a的timer還未結(jié)束倒計(jì)時(shí)。返回VC1時(shí),timer未釋放,導(dǎo)致VC2a未被dealloc,此時(shí)VC1再次推出VC2b,就會(huì)導(dǎo)致有一個(gè)未被顯示的VC2a仍然存在于內(nèi)存。如果VC2中有使用通知,RAC等接收數(shù)據(jù),會(huì)導(dǎo)致VC2a和VC2b同時(shí)收到通知,后續(xù)邏輯會(huì)走兩遍。
解決辦法:在VC2的viewDidDisappear:方法中,檢查self是否已經(jīng)不在navigationcontroller.viewControllers中,不在則表示已經(jīng)被拋棄,此時(shí)主動(dòng)釋放timer,如果則是跳轉(zhuǎn)了下一個(gè)頁面,此時(shí)不釋放timer(再次返回該頁面時(shí),不會(huì)生成新的VC2)

(持續(xù)更新)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容