我有一個允許用戶為他們的帳戶添加圖片的應用程序。我想知道如何使用Core Data存儲(從相機或照片庫中獲得的)圖像,因為我可能為用戶提供備份功能,并且希望將圖像數據傳輸到服務器。我遇到了有關創建Image模型對象并與模型對象創建一對一關系的設計建議User(因此,除非需要,否則不會調用關聯的Image對象)。但是,我不確定如何實際存儲圖像以及這在性能方面是否可能致命。我會很感激任何嘗試此方法的人所提供的有關方法和陷阱的建議。
3 回答

炎炎設計
TA貢獻1808條經驗 獲得超4個贊
在核心數據中存儲圖像數據的規則如下:
<100 kb的存儲在相關實體中(人員,地址或其他)。
<1 mb存儲在關系的另一端的單獨實體中,以避免性能問題。
1 mb的磁盤存儲,并引用Core Data存儲中的路徑。
您可以使用可轉換數據類型將NSImage直接存儲到Core Data中。實際上,您可以使用可轉換數據類型來存儲實現NSCoder協議的任何內容。
我個人不會將其轉換為CGImageRef,因為那樣會丟失很多信息。

動漫人物
TA貢獻1815條經驗 獲得超10個贊
陷阱:您最終可能會遇到難以處理的龐大SQLite數據庫。您是否真的要讓用戶一步將一個MB的文件上傳到服務器?如果蜂窩連接斷開幾秒鐘,您該怎么辦?
我認為如果您使用Core Data來管理圖片及其上傳狀態(上傳:是或否)會更好。這樣,您可以在適合應用程序工作流程的情況下上傳圖像。好的,由于連接很多,它將持續更長的時間。但是我認為這是一種更清潔的方法。
當您想到iTunes時,談到備份:無論如何,本地iPhone的“文檔”文件夾都已同步。
- 3 回答
- 0 關注
- 446 瀏覽
添加回答
舉報
0/150
提交
取消