美文网首页
iOS 内存警告处理预防崩溃

iOS 内存警告处理预防崩溃

作者: 北方的冬天008 | 来源:发表于2018-01-23 14:49 被阅读0次

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

    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 内存警告处理预防崩溃

          本文链接:https://www.haomeiwen.com/subject/caysaxtx.html