2013-05-28 72 views
1

我在我的應用中使用特定顏色構建UIImages中的方法。由於最有可能多次創建相同的彩色圖像,我想緩存該UIImage,然後使用緩存版本,而不是建立一個新的,如果該特定的顏色是必要的。在iOS上緩存本地創建的圖像以便快速重複使用

這不是從網絡緩存遠程圖像,而是從本地創建的圖像。

什麼是最好的方法來做到這一點?從磁盤或將UIImage對象保存爲NSDictionary?那麼NSCache

**我不希望爲此使用庫。尋找一個簡單的解決方案。

回答

3

這取決於您擁有多少圖片以及每個圖片的使用頻率和同時使用頻率。

如果您有一組經常使用的圖像,那麼NSDictionary是一個不錯的選擇,因爲它會將所有圖像保留在內存中。如果您確實收到內存警告,則可以隨時刪除所有圖像,然後在需要時重新生成它們。

正如你在代碼中生成圖像似乎緩存到磁盤不會很有用,但這取決於圖像的複雜程度。再次,NSDictionary可用於內存緩存,如果字典中沒有任何內容,則會出現磁盤失敗,然後重新創建,如果一切都失敗。

NSCache route爲您提供了一些多線程優勢(如果您使用它們),但通常類似於NSDictionary路由。由於內存管理是爲您處理的,因此您的控制能力會有所下降,因此緩存可能會決定更頻繁地摧毀一些圖像,而不是您明確地管理它。

在任何情況下,您只需要在當前代代碼上使用少數幾行代碼。

+0

我不介意操作系統處理我的內存問題,所以我在想'NSCache'是一個好主意...... –

相關問題