Резервное копирование SQLite данных ядра iphone - PullRequest
2 голосов
/ 11 марта 2011

Я работаю над проектом, в котором я создаю экземпляр файла sqllite своего приложения и настраиваю его так, чтобы пользователь мог отправить файл резервной копии по электронной почте на свой собственный адрес электронной почты.Я видел, как это было сделано на iStudiezPro, и он работает волшебным образом.

Я могу получить электронное письмо, чтобы открыть файл приложения и восстановить его; проблема в том, что для обновления хранилища необходимо обновить приложение.Когда я возвращаюсь к приложению, я делаю это:

[persistentStoreCoordinator release];
persistentStoreCoordinator = nil;

[managedObjectContext release];
managedObjectContext = nil;

[primaryUserManagedObject release];
primaryUserManagedObject = nil;

[self managedObjectContext];

Мне просто нужно найти способ для приложения перестроить основной стек данных во время работы приложения.Любая помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

Самым простым решением было бы просто сохранить контекст и затем скопировать файл хранилища в папку документов, используя стандартные методы fileManager. Если вы убедитесь, что нет никаких текущих операций Core Data, я не думаю, что у вас возникнут проблемы с повреждением.

Если вам нужна дополнительная защита, прежде чем копировать, выпустить и обнулить контекст managedObject, а затем координатор постоянного хранилища. Когда копия будет сделана, перестройте стек. Нет причин перезапускать само приложение. Вероятно, вам придется создать выделенный объект для управления стеком основных данных, чтобы его можно было включать и выключать.

0 голосов
/ 04 марта 2014

Я загрузил образец приложения, которое предоставляет возможности резервного копирования и восстановления различными способами, включая локальное резервное копирование, резервное копирование в iCloud и из него, резервное копирование по электронной почте, импорт из электронной почты и копирование файлов через iTunes. См. Ссылку ниже для видео, демонстрирующего эти возможности, и вы можете загрузить примеры приложений с сайта.

http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/sample-apps-explanations/backup-files/

...