2016-07-31 44 views
2

我對核心數據相當陌生。這很混亂。核心數據請求和保存的最佳實踐

我想在Core Data中存儲很多小尺寸的圖像。但是,我對這樣做最有效的方式感到困惑。

當我的視圖控制器加載時,我從我的服務器獲取我需要查看和加載它們在UITableView中的圖像列表。在我的表格視圖數據源中,我想檢查圖片是否在覈心數據中可用。如果沒有,我從服務器加載它,然後將其保存到核心數據。

這裏是我的問題,但...

它是有效的,使單個圖像每次「的cellForRowAtIndexPath」新的核心數據請求被稱爲?此外,如果從我的服務器檢索到單個映像到核心數據是否有效?

或者是從Core Data中檢索所有圖像,然後在檢索到的圖像中使用'cellForRowAtIndexPath'搜索它需要的圖像會更好嗎?

感謝您的幫助!試圖瞭解核心數據。

回答

1

批量提取圖像(或者圖像的圖像路徑很大,並且將二進制數據存儲在數據存儲區外)會更有效。這是爲您的UI找到圖像的方法。快速搜索您的內存映像列表以確定您是否擁有該映像或需要從服務器獲取該映像。以相同的方式從數據存儲區單獨獲取數據並不是那麼快......

從服務器獲取圖像時,您可能會單獨獲取它們,然後將它們單獨保存到數據存儲區是合適的太。

+0

謝謝你的迴應!我認爲,當你說在內存中搜索它們比從存儲中搜索時更快。 – justColbs

1

如果圖像很小(如〜10KB),應該可以將它們存儲在數據庫中。

根據我的經驗,當需要加載圖像時,會導致代碼基礎更清晰,內存更加高效,並且在圖像數量增加時可以更好地縮放。

另一種方法(一次加載所有圖像)在圖像數量增加時的某個點會變慢。

對於手機數據庫,我建議使用Realm.io替代核心數據。它更容易,更少麻煩。

+0

謝謝你的迴應! – justColbs