2014-05-04 35 views
0

我正在開發一個項目,要求核心數據數據庫以某種方式進行備份,以便在用戶刪除並重新下載應用程序時數據不會丟失。是iCloud自動備份的文檔目錄中的Core Data sqlite數據庫嗎?

在它指出了iOS存儲方針:

只有文件和其他數據是用戶生成的,或者說不能,否則您的應用程序中重新創建,應存放在/ Documents目錄,將是自動備份iCloud。

我不知道這是否意味着如果我把我的Core Data sqlite數據庫放在/ Documents目錄下,它會被iCloud自動備份?

如果沒有,是否有任何簡單的備份核心數據數據庫的解決方案?我只需要在應用程序被刪除和重新安裝後恢復數據庫。設備之間的同步並不是我的目標。

+0

查看[Apple使用帶有Core Data指南的iCloud](https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/UsingCoreDataWithiCloudPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013491) –

回答

3

是的,將您的數據庫放在Documents目錄中將按照您的要求進行:無需同步到iCloud即可備份到iCloud。

同步需要移動到無處不在的容器,但那不是你想要的。

有關更多信息,請參閱Apple技術說明,其中說明了how to exclude a file from backup。當然,要使備份工作,用戶必須將其設備備份到iCloud。

編輯:這是另一個有用的鏈接:Apple的App Backup Best Practices section of the iOS App Programming Guide

+0

感謝您的回答。這真的爲我節省了很多時間。你可以給我一些指導,在應用程序被刪除並重新安裝後恢復sqlite數據庫嗎?我需要檢查iCloud上是否存在備份並下載數據庫? –

+0

不,你什麼都不做。這從備份還原期間自動發生。它發生在所有備份的應用程序上。在恢復期間,它們全部恢復到備份狀態。 –

+0

換句話說,iCloud備份只是一個常規的文件系統備份,並且可以恢復與文件系統上的文件相同的文件,而無需任何需要的應用程序干預。 –

相關問題