2014-07-07 45 views
0

如何使用文件名將圖像緩存到緩存文件夾中。我有一個集合視圖從互聯網加載圖片網址。所以我想緩存圖像的文件名稱作爲URL在Caches文件夾中。預先感謝如何將圖像緩存到帶有文件名的文檔文件夾

+0

您可以使用圖像URL的SHA-1哈希來創建文件名(您可能希望強制URL的所有字符作爲過程的一部分小寫)。無論URL如何,這總是會創建一個有效的文件名。 – trojanfoe

回答

2

下載圖像,並把它保存在緩存文件夾非常簡單:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 

    NSString *urlString = @"http://URL"; 

    NSData *webData= [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; 

    if (webData) { 
     // save in the Filesystem 
     NSString* cachesDirectory = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
     NSString *file = [cachesDirectory stringByAppendingPathComponent:[urlString lastPathComponent]]; 
     [webData writeToFile:file atomically:YES]; 
    } 
}); 

但是當你顯示圖像IOS使用懶惰圖像解壓縮,產生在主線程上的延遲。爲了避免這些延誤有很大的圖書館:

SDWebImage

FastImageCache

我會建議你使用其中的一個。

+0

我會強烈推薦SDWebImage。這是最好的。 –

相關問題