SDWebImage-Webピクチャキャッシュ
3552 ワード
https://github.com/rs/SDWebImage 14000 + star
1、ネットのピクチャーに対してローカルキャッシュを行って、非同期にロードして、ピクチャーの取得を最適化して、みんなはすべて約束します.2、まずurlピクチャに対してローカルが存在するかどうかを判断し、直接使用しているか、ネットワークピクチャを使用しているかどうかを判断し、urlをkeyとしてローカル(ディスク、メモリ)に保存する3、ディスクを保存するクリーンアップがずっと存在し、メモリを保存する可能性がシステムによって明らかになる.
一般1最もよく使われる 2 buttonでも
じこけっていキャッシュ1メモリに が存在するかどうか2キャッシュ全体が存在するかどうか(メモリを確認してからディスクを確認) .
キャッシュのクリア1取得キャッシュサイズ 2清掃(進捗バーを作って、さもなくば清掃が速すぎる)
ダウンロードの進行状況1一般ダウンロード 2非同期ダウンロード
ローカルキャッシュの強制リフレッシュ
1
1、ネットのピクチャーに対してローカルキャッシュを行って、非同期にロードして、ピクチャーの取得を最適化して、みんなはすべて約束します.2、まずurlピクチャに対してローカルが存在するかどうかを判断し、直接使用しているか、ネットワークピクチャを使用しているかどうかを判断し、urlをkeyとしてローカル(ディスク、メモリ)に保存する3、ディスクを保存するクリーンアップがずっと存在し、メモリを保存する可能性がシステムによって明らかになる.
一般
// , 。
[imageView sd_setImageWithURL:[NSURL URLWithString:url2]
placeholderImage:[UIImage imageNamed:@"placeholderImage"]];
[button sd_setImageWithURL:[NSURL URLWithString:url2]
forState:UIControlStateNormal
placeholderImage:[UIImage imageNamed:@"placeholderImage"]];
じこけっていキャッシュ
UIImage *memoryImage = [[SDImageCache sharedImageCache] imageFromMemoryCacheForKey:url1];
if (memoryImage) {
// do
}
UIImage *cacheImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:url1];
if (cacheImage) {
// do
}
キャッシュのクリア
NSInteger imageCacheByte = [[SDImageCache sharedImageCache] getSize];
NSLog(@"%zi",imageCacheByte);
[[SDImageCache sharedImageCache] calculateSizeWithCompletionBlock:^(NSUInteger fileCount, NSUInteger totalSize) {
NSLog(@" %zi , %fM",fileCount,totalSize/1024./1024.);
}];
[[SDImageCache sharedImageCache] clearDisk];//
[[SDImageCache sharedImageCache] clearMemory];//
[[SDImageCache sharedImageCache] removeImageForKey:url1];//
ダウンロードの進行状況
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadImageWithURL:[NSURL URLWithString:url2]
options:0
progress:^(NSInteger receivedSize, NSInteger expectedSize) {
// ,
NSLog(@"%zi,%zi",receivedSize,expectedSize);
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
if (image) {
// do something with image
}
}];
SDWebImageDownloader *downloader = [SDWebImageDownloader sharedDownloader];
[downloader downloadImageWithURL:[NSURL URLWithString:url2]
options:0
progress:^(NSInteger receivedSize, NSInteger expectedSize) {
// progression tracking code
}
completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
if (image && finished) {
// do something with image
}
}];
ローカルキャッシュの強制リフレッシュ
[imageView sd_setImageWithURL:[NSURL URLWithString:@"https://graph.facebook.com/olivier.poitrey/picture"]
placeholderImage:[UIImage imageNamed:@"avatar-placeholder.png"]
options:SDWebImageRefreshCached];
1