2012-11-04 33 views
0

我是初學者。我想通過對TableView中的URL來顯示圖像,所以我用AFNetworking + SDURLCache,就像下面「緩存圖片」和「本地圖片」有什麼不同?

// init URLCache 
SDURLCache *URLCache = [[SDURLCache alloc] initWithMemoryCapacity:1024*1024*2 diskCapacity:1024*1024*20 diskPath:[SDURLCache defaultCachePath]]; 
[URLCache setIgnoreMemoryOnlyStoragePolicy:YES]; 
[SDURLCache setSharedURLCache:URLCache]; 

======================= =================================

// set cell  
[cell.imageView setImageWithURL:[NSURL URLWithString:IMAGE_URL] placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 
[[SDURLCache sharedURLCache] cachedResponseForRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:IMAGE_URL]]]; 

在這裏,我使用了一個圖像上的所有不同的細胞。一切正常!當我第一次運行我的項目時,在單元上顯示圖像需要很長時間,因爲我的網頁圖像非常大。當我第二次運行我的項目時,我發現TableView立即加載圖像 ?爲什麼?爲什麼不立即加載所有圖像。我將緩存的圖像替換爲本地圖像,TableView一次加載圖像。 「緩存圖像」和「本地」圖像有什麼不同? SDURLCache沒有工作?

+0

你的圖像有多大? 50KB? 1MB? –

+0

我的圖像是185KB – expl

回答

0

我沒有iOS的經驗,但我會推測緩存的圖像是存儲在Web客戶端的緩存中的圖像,以便它可以更快地加載該資源,除非該資源已被修改,並且緩存版本已失效被放入緩存中。

我假設一個本地圖像是存儲在設備本身的圖像。顯然這比下載速度更快,因爲iDevices上的存儲器由NAND閃存芯片等組成,遠遠超過了國內互聯網連接。