簡體   English   中英

將現有的核心數據映像存儲從可轉換數據更改為二進制數據/允許外部存儲

[英]Changing existing Core Data Image Store from Transformable to Binary Data/Allows External Storage

我將要完成一項艱巨的項目,即將我的實時(即已經在應用商店上已經存在多年)應用從Transformable轉換為Binary Data,以存儲Core Data中的圖像。

我有很多用戶,他們的數據庫很大,可以存儲很多圖像。 這確實減慢了備份/還原過程,並可能還導致了其他一些幕后問題。 幾年前以這種方式設置時,我再也知道不了。

我如何進行此過程,以免丟失客戶的一張圖像? 如果只是我和我自己的數據,我相信我可以使事情正常進行。 但是我想確保一步一步正確地做到這一點,而且我知道這個社區可以在這一領域提供很大幫助。 我真的不知道從哪里開始現有的圖像。

基本上,我正在尋找1)要采取的步驟,以免錯過任何拍子。 和2)在此過程中的一般建議,警告等。 這個版本上線時,我確實需要進行干凈的遷移。

在此先感謝任何可以提供幫助的人。

一條建議:請勿使用“允許外部存儲”,尤其是如果您打算將來將iCloud與Core Data同步使用時。 參考: http : //www.objc.io/issue-10/icloud-core-data.html

相反,您可能需要考慮將圖像移到它們自己的文件中,然后將URL保存到數據庫中的那些文件中。 您將必須確定如何最好地進行遷移:如果采用這種方式,輕量級遷移可能不是一種選擇。

可轉換的數據類型實際上只是帶有一些附加元數據的二進制數據。 您是否在現有商店上測試了簡單的輕量級遷移? 我懷疑遷移將正常進行,並將現有數據保留在存儲中。

如果您希望將現有的二進制數據實際從SQLite文件中移出,那么您正在研究的東西會更多。

繁重的遷移將滿足您的期望,但是如果商店很大,則可能需要花費很長時間,並且可能無法提供足夠的反饋來獲得良好的用戶體驗。 我個人從來沒有在IOS上使用繁重的遷移,但是它可以實現您的目標。

導出/導入也將起作用。 當輕量級遷移不起作用時,我通常建議導出/導入。 它涉及大量的代碼,但最終您擁有了代碼,了解了整個過程,並可以根據您的實際需求進行調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM