博客> 使用sdwebimage的一点问题 和 版本更新判断
使用sdwebimage的一点问题 和 版本更新判断
2018-11-14 11:38 评论:0 阅读:936 飞翔信念
ios 使用sdwebimage的一点问题 版本更新判断

今天在完善项目的时候发现点问题,记录下

  1. sdwebimage在弱网的情况下出现的问题:A和B两个界面,点击A进入B的时候,B中有个加载图片详情的功能,在网络比较弱的情况下,瞬间点进去B再返回A,加载图片的任务已经添加,即使返回A图片仍在加载,这样点击退出操作多次后,弱网下就有很多未加载完成的图片任务,达到一定情况下app会闪退出来,这时就需要在B界面的delloc方法里取消未加载的图片任务sd_cancelImageLoad。

2.有一个图片列表,可以上拉加载,我无限制的上拉,占用内存会不断的增加,达到一定程度会因为内存占用太大而闪退,经过搜索发现是sdwebimage中有一个decodedImageWithImage方法会消耗大量内存(大致就是把缓存的图片压缩与解压缩的过程),把这句代码注释掉之后,内存会有很大改善。 2.经过这两天的测试发现,以上方法其实并不能根治,在某些图片较大的情况下还是会发生内存暴涨的问题,经过搜索研究发现比较完美的解决办法,在此附上链接: http://blog.csdn.net/benyoulai5/article/details/50462586

3.版本升级时要判断版本号

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    [manager POST:@"https://itunes.apple.com/lookup?id=项目在商店的数字串" parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        NSArray *array = responseObject[@"results"];
        NSDictionary *dict = [array lastObject];
//        NSLog(@"APP STORE版本为:%@",dict[@"version"]);

        NSDictionary *infoDic=[[NSBundle mainBundle] infoDictionary];
        NSString *currentVersion=infoDic[@"CFBundleShortVersionString"];
//        NSLog(@"当前版本为:%@",currentVersion);

        if ([dict[@"version"] compare:currentVersion options:NSNumericSearch] == NSOrderedDescending)
        {
        }
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

    }];

其中比较版本号的时候用到字符串的compare方法,比较方便。

收藏
1
sina weixin mail 回到顶部