我想製作我的核心數據數據庫的備份副本,無需使用文件管理器複製sqlite文件或使用持久存儲協調器migratePersistentStore方法(因爲這裏解釋太長的原因)。我想要做的是打開一個與原始文件具有相同MOMD的新持久性存儲,創建一個新的託管對象上下文,然後遍歷數據庫中的所有對象並將它們插入到新的上下文中。核心數據:製作數據庫的對象副本
這將適用於簡單的實體,但問題是我的模型有大約20個實體,其中許多實體具有一對多和多對多的關係。稍微複雜一點的解決方案是將每個對象插入到新的MOC中,然後將所有新的託管對象保存在內存中,並使用它們在後續遍歷中綁定對象之間的所有關係。但它似乎是一個非常混亂的解決方案。
是否有一種乾淨優雅的方式來實現這一目標,這可能適用於任何類型的數據模型,而不僅僅是我自己模型的定製解決方案,而不必同時將所有對象都放在內存中?
謝謝。
謝謝。我不能在iCloud方面存在一些限制,因爲您無法遷移或複製文件並將其與其他一些iCloud帳戶(甚至沒有iCloud帳戶)一起使用。 –
如何從iCloud獲取數據? – paulmelnikow
這是通過使用migratePSC API,但它被證明是一個大內存豬。這就是爲什麼我要用逐個對象的方式來進行復制的原因,所以我可以更好地控制內存壓力。 –