iOS 内存警告处理预防崩溃

做项目的时候,发现后台给的图片都是特别高清的,导致我的只要下拉加载几次就会频繁的收到内存警告,现在总结一下处理方法:

1.如果使用了SDWebImage框架,使用如下代码,可以有效的减少内存:

[[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"];//清除内存中通过SDWebImage框架下载的图片,建议在收到内存警告时在调用

2.让后台把图片压缩,根据参数不同,获取到不同大小的图片,常用的话,最好写成宏定义,例如:

 /**200*200的正方形缩略图,适用于头像等方的图*/

#define URLAppendAvatar(url) [url stringByAppendingString:@"!thumb.avatar"]

 /**等比例缩小,限定最长边600,短边自适应,适用于列表页*/

#define URLAppendCommon(url) [url stringByAppendingString:@"!thumb.common"]

3.加载图片时,根据具体情况,选择不同的方法:

imageNamed: 加载时会缓存图片,当图片会频繁的使用时,使用imageNamed

imageWithContentsOfFile:仅加载图片,不会缓存,当图片不经常使用或者图片过大时,使用imageWithContentOfFile

4.在收到内存警告时,调用以下代码:

if ([[UIDevice currentDevice].systemVersion floatValue] >= 6.0) {

    if (self.isViewLoaded && !self.view.window){

       //释放其他可复现的资源&&保存数据

        self.view = nil;//目的是再次进入时能够重新加载调用viewDidLoad函数。

    }

}

关于收到内存警告的具体原理,请参考这篇博客:http://blog.csdn.net/jeffasd/article/details/51066736

你可能感兴趣的:(iOS 内存警告处理预防崩溃)