iOS內(nèi)存警告處理

  • 只要出現(xiàn)內(nèi)存警告的時候,會第一時間執(zhí)行 AppDelegate- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 方法, 可以在這個方法處理:清理內(nèi)存緩存、取消當(dāng)前所有的操作(比如:下載、網(wǎng)絡(luò)請求),舉例:SDWebImage 的使用出現(xiàn)內(nèi)存警告的處理
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
    // 1 清理內(nèi)存
    // 清除類型為SDImageCacheTypeDisk:直接刪除,重新重新創(chuàng)建
    // 清除類型為SDImageCacheTypeDisk:清除過期緩存,計算當(dāng)前緩存大小,和z設(shè)置的最大緩存數(shù)量比較,如果超出,那么會繼續(xù)刪除(按文件的先后順序)
    // 默認的圖片過期時間:7天
    [[SDWebImageManager sharedManager].imageCache clearWithCacheType:SDImageCacheTypeMemory completion:nil];
    
    // 2 取消當(dāng)前所有的操作
    [[SDWebImageManager sharedManager] cancelAll];
}
  • 遇到內(nèi)存警告后,在 UIViewController 中都有 - (void)didReceiveMemoryWarning 方法,來接受內(nèi)存警告的通知,所以也需要在這里進行處理,將沒有顯示的 UIViewControllerself.view 置為 nil ,釋放內(nèi)存。
// 如果出現(xiàn)內(nèi)存警告,ios6.0之前,系統(tǒng)會自動清理視圖;ios6.0之后,系統(tǒng)不會再自動清理視圖,需要手動處理;
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 6.0) {
        // 需要注意的是self.isViewLoaded是必不可少的,其他方式訪問視圖會導(dǎo)致它加載,在WWDC視頻也忽視這一點。
        // 是否是正在使用的視圖
        if (self.isViewLoaded && !self.view.window) {
            // 目的是再次進入時能夠重新加載調(diào)用viewDidLoad函數(shù)。
            self.view = nil;
            // 釋放其他可復(fù)現(xiàn)的資源&&保存的數(shù)據(jù),eg:數(shù)據(jù)源數(shù)組...
        }
    }
}

Author

如果你有什么建議,可以關(guān)注我,直接留言,留言必回。

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

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,630評論 1 32
  • IOS好的應(yīng)用應(yīng)該在系統(tǒng)內(nèi)存警告情況下釋放一些可以重新創(chuàng)建的資源 1、應(yīng)用程序委托對象 在應(yīng)用程序委托對象中接收內(nèi)...
    像小強一樣活著閱讀 5,372評論 0 1
  • 思路一: “你要今天回去,就別回來了。以后跟你哥過就行,也別要這個家了!” 當(dāng)因為爭吵變得怒不可遏的妻...
    玉璁瓏閱讀 357評論 2 3
  • 星期天的早上,難得的睡個懶覺。睜開眼睛的第一瞬間,腦袋里想的是,今天是周幾?用不用上班?待到意識清醒之后,想到不用...
    婷婷小妞閱讀 650評論 1 3
  • 黑桃欣閱讀 123評論 0 0

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