我遇到了一个问题,无论我用什么框架来缓存我的图像,从AFNetworking到SDWebImage的缓存技术都要写入磁盘。每次我按下主页按钮,然后返回应用程序。就像所有图像都必须被高速缓存一样。
我不知道从哪里开始寻找
为了将AFNetworking用于我的常规网络功能,例如JSON和图像上传,我使用https://gist.github.com/sibljon/5957892来解决命名空间冲突,因此我完全覆盖AFNetworkings UIImageView并坚持使用SDWebImage,而不是调用
感谢jonsibley和his answer我不打电话
[imageFile setImageWithURL:[NSURL URLWithString:friendAvatar] placeholderImage:[UIImage imageNamed:@"defaultProfileImage.png"]];
[imageFile SD_setImageWithURL:[NSURL URLWithString:friendAvatar] placeholderImage:[UIImage imageNamed:@"defaultProfileImage.png"]];
编辑UDPATE:
经过多次测试后,我发现该应用程序在恢复应用程序后正在清理缓存,而不是在它开始被暂停时(当按下主页按钮时) 可能导致这种情况的任何线索?
答案 0 :(得分:3)
这有两种可能性。请注意清除 r 磁盘和清除 n 磁盘之间的区别。
SDWebImage在收到cleanDisk
后调用UIApplicationWillTerminateNotification
。此方法删除早于其过期日期的文件。之后,它会清除从最旧到最新的文件,直到达到配置的最大缓存大小。
如果您没有设置SDImageCache的maxCacheSize
属性,则会忽略此属性。
如果您没有设置SDImageCache的maxCacheAge
属性,则默认为604800
秒(1周)。
您是否在应用中调用了SDWebImage的clearDisk
或clearMemory
方法?如果是这样,请在它们上设置断点以查找在恢复期间调用它们的原因。
[SDImageCache -cleanDisk]
中设置一个断点并逐步查看它,看看你的缓存被清除的原因。