2010-11-11 84 views

回答

36

主要有兩種選擇:

  1. 存儲在磁盤上的文件,然後保存在覈心數據的路徑,圖像
  2. 存儲圖像的核心數據的二進制數據

我個人更喜歡第一個選項,因爲它允許我選擇何時將內存中的實際圖像加載。這也意味着我不必記住原始數據的格式;我可以使用路徑alloc/init一個新的UIImage對象。

+0

所以你的意思是說如果我將圖像作爲二進制數據存儲在覈心數據中,我需要在恢復它時瞭解原始文件格式。在Core Data中存儲數據是否有其他缺點? – Abhinav 2010-11-11 20:48:38

+1

@Abhinav正確;另一件事我會說,通過保持核心數據的形象,你保持你的商店文件小。這是否是一個缺點可以通過大量的性能分析來解決。 :) – 2010-11-11 21:13:33

+0

因此,這意味着將較重的圖像文件放在Core Data的外面會提高應用程序的性能。我理解正確嗎? – Abhinav 2010-11-11 22:00:07

16

您可能想要從核心數據編程指南中瞭解如何處理二進制大對象(BLOB)的this。對於什麼尺寸的二進制數據應該和不應該存儲在實際的Core Data存儲中,有一些經驗法則。

您也可以看看Core Data iPad/iPhone BLOBS vs File system for 20k PDFs

如果核心數據存儲中做的地方二進制數據,你會做得很好具有保存實際數據的「數據」的實體,有你的「圖像」實體分開。在兩個實體之間創建一個關係,以便只在實際需要時才加載「數據」。 「圖像」實體可以保存元數據,如標題,數據類型等。

+7

+1關於存儲數據的單獨實體的好主意。 :) – 2010-11-11 21:14:09

0

關於在哪裏存儲用戶數據/文件(我發現「應用程序支持」是一個體面的位置,因爲我對使用者移動,刪除或改變文件有所警惕,這將導致圖像無法恢復並在以後被我的應用程序使用)

以我的世界爲例: eg。 「〜/ Library/Application Support/minecraft/saves /」

我同意以前的評論和存儲路徑到核心數據中的圖像,但除此之外將圖像本身作爲png文件存儲在覈心數據之外的文件夾中。

相關問題