2011-05-20 87 views
0

在我們的iOS應用程序中,我們有近百個資源包中的圖像文件。現在我們想讓它們成爲網絡基礎,因爲圖像可能隨時改變(更新/不再需要/添加)。我們正在討論什麼方法是最佳的。根據我所閱讀的內容,我明白資源包在設備上不可編輯。所以,當我啓動應用程序時,我會從服務器檢查是否有任何圖像更新。如果是這樣,我將下載更改後的圖像,然後將它們保存到文檔目錄中。然後在應用程序中,對於每個圖像,我基本上都必須檢查它是否在資源包中,然後從那裏抓取它。否則從文檔目錄中選擇並顯示它。更新與應用程序捆綁在一起的圖像的更好方式

另一種方法是,我沒有在資源文件夾中任何東西,我從服務器上下載的所有圖像上的應用程序啓動,並將它們存儲到文件目錄,然後,下載修改過的文件,在隨後的應用程序啓動。在這裏,我正在消除資源文件夾檢查,如果圖像存在與否,我的應用程序包大小將減少。

第三種方法是將文件從我的資源目錄複製到文檔目錄第一次啓動後,從文件目錄繼續。

什麼會是一個更好的方法或全部是從性能上看類似有什麼建議?

回答

0

IMO,第三個選項提供消除不必要的代碼,並預載儘可能多的數據可能之間的最佳平衡。當應用第一次啓動時,您不希望讓用戶等待100次圖像下載,因此需要儘可能多地進行預加載。複製代碼很簡單,只能使用一次。這樣就消除了您必須對其他選項執行的運行時檢查。

0

不用擔心,性能將不會是一個問題,除非你使用一個特別不明智的圖像查找算法。

對於如此少量的文件,文件系統遍歷應該相當快。

0

在實現自己的東西之前,我建議您查看一下圖片緩存。即從EnormEgo EGOImageView。

我已經在一些應用,這都依賴於從網址抓取圖像中使用它。它爲你處理所有事情,你只需要設置一個「背景」圖像來顯示它,然後在背景中抓取基於URL的圖像。第二次使用它時,它立即可用。肯定得到我的投票,易於使用...

p.s.它可以免費使用