用sdwebimage下载图片是很常见的方法,下载到的图片会自动缓存到本地,下次加载时直接调用,但是高清图片也会造成占用内存过大的问题,遇到这种问题可以调用
[[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"]
亲测有效,也可以在使用sdwebimage的时候设置不缓存到内存里,使用方法为
[SDImageCache sharedImageCache].config.shouldCacheImagesInMemory = NO
我在使用sdwebimage从相机下载图片的时候,设置的方法如下图:
下载的图片sdwebimage会自动保存下来,下载图片的路径可以通过如下方法获取:
NSString *cachekey = [[SDWebImageManager sharedManager] cacheKeyForURL:[NSURL URLWithString:stry]]
weakSelf.imagePath = [[SDImageCache sharedImageCache] defaultCachePathForKey:cachekey]
清除该URL下缓存的图片方法为:
[[SDImageCache sharedImageCache] removeImageForKey:stry fromDisk:YES withCompletion:nil]
用sdwebimage下载的图片设置imageview的image的时候,如果图片过大会占用大量内存,而且无法释放,可以用下载好的图片生成缩略图,用缩略图来显示,这样内存压力会小很多
ps:第一次写,排版的问题请忽略