2011-01-20 36 views
2

我有幾個UITableViews異步加載圖像和文字從互聯網。我想緩存圖像以加速性能。緩存圖像 - NSURLRequest和cachePolicy Vs自定義代碼

什麼是最好的:

* Using NSURLRequest and cachePolicy? 
* Saving the image to file system? 

有關的NSURLRequest和的CachePolicy情況下,我會如何清潔圖像,如果我不想使用它們。

回答

2

NSURLRequest應該在默認緩存策略下正常工作,只要每次運行加載一次圖像(即緩存在內存中)即可。不過,iPhone不會將數據緩存到磁盤。

該文檔在這一點上有點矛盾。例如,NSURLCache initWithMemoryCapacity:diskCapacity:diskPath上的文檔說,iOS上的diskPath應該是存儲磁盤緩存的子目錄的名稱。

但在NSURLCacheStoragePolicy的文件說:

重要:iOS的忽略這個緩存 政策,而是將其視爲 NSURLCacheStorageAllowedInMemoryOnly。

根據實際測試,後者似乎是這種情況。因此,無論您設置了哪些選項,您都不會在iOS(目前)上緩存磁盤。因此,如果您希望圖像在兩次運行之間保持一致,則需要將其保存到文件系統。

有些人建議https://github.com/rs/SDURLCache爲此目的,雖然我還沒有嘗試過自己。