最近項目遇到了一個非常難以查找的內存問題告匠,由于內存一直在泄露導致視頻播放一段時間之后就會崩潰太援。然后leader要求在每個頁面的didReceiveMemoryWarning函數(shù)中寫一些釋放內存占用的代碼愉粤。下面是加的過程中的一點小建議窿凤,防止大家以后遇到這種問題踩坑千贯。
1.注意:不要主動去調用didReceiveMemoryWarning函數(shù)孕似,當內存出現(xiàn)問題竞思,蘋果會發(fā)送一個內存警告的通知表谊,然后系統(tǒng)會去調用這個函數(shù)
2.發(fā)生內存警告的時候,沒一個頁面都會收到這個通知盖喷,無論這個頁面是否正在顯示爆办。
3.鑒于每個頁面都會收到這個通知,在釋放資源之前需要做一個簡單的判斷课梳,那就是當前頁面是否是正在顯示的距辆。
-(void)didReceiveMemoryWarning{
[super didReceiveMemoryWarning];
if (self.isViewLoaded && !self.view.window) {
//釋放資源的代碼
}
}
4.注意在釋放完資源之后,如果想讓當前頁面重新加載的時候走viewdidload方法暮刃,那么需要寫self.view = nil跨算。