2014-01-12 3 views
0

У меня выпущен V1.0 приложения для iPhone, в котором используются Core Data, но нет iCloud. Теперь я хочу выпустить V2.0 с поддержкой iCloud.Как включить iCloud и перенести данные Core на обновление выпуска?

Я использую https://github.com/mluisbrown/iCloudCoreDataStack/blob/master/iCloudCoreDataStack/PersistentStack.m в качестве шаблона, и все, кажется, работает.

Поскольку в предыдущем выпуске не было iCloud, и новый, я хотел бы перенести локальную копию в iCloud, когда пользователь впервые откроет новую версию.

Как это сделать? Могу ли я как-то скопировать весь файл sqlite из локального в iCloud? Схема одинакова между 1.0 и 2.0.

Я планирую спросить у пользователя, хотят ли они использовать локальные Vs. iCloud (в соответствии с рекомендациями), но если они говорят «Да», я хочу как-то просто сделать массовую копию.

Благодаря

ответ

0

Я только что разместил образец приложения Core Data для iOS, включающего интеграцию iCloud. Приложение включает в себя набор настроек для пользователя, чтобы переключать настройки «Использовать iCloud» и перенастраивать хранилище в iCloud и из него в зависимости от настроек пользователя.

Загрузить по ссылке ниже - извините за документацию - в какой-то момент обойдется, но она работает так же, как пример UIManagedDocument.

http://ossh.com.au/design-and-technology/software-development/

+0

Мне нужно время, чтобы проанализировать код, но этот пример выглядит именно то, что я искал. Большое спасибо – dkarchmer

0

Вы не можете массовое копирование, вы должны использовать надлежащий API [NSPersistentStoreCoordinator migratePersistentStore:...] и [NSPersistentStoreCoordinator removeUbiquitousContentAndPersistentStoreAtURL:...] с опциями ICloud перенести магазин в ICloud. Я попытался документировать, как это сделать (но в примере используется UIManagedDocument, хотя API-интерфейсы Core Data для миграции в iCloud и из iCloud остаются теми же).

Не только вы должны проверить пользовательские настройки, вы также должны проверить, вошли ли они в iCloud. Также вам нужно перейти на iCloud, а затем вы должны перенести обратно на локальный, если пользователь изменит предпочтение. Поэтому вы должны проверить, изменился ли пользователь, когда приложение становится активным. Это не то, что нужно делать прямо, но это не сложно, как только вы выясните требуемую логику.

Смотрите ссылку ниже для более подробного объяснения, примеры кода, и видео, показывающее приложение работает и создание/удаление файлов в локальных и ICloud контейнеров:

http://ossh.com.au/design-and-technology/software-development/uimanageddocument-icloud-integration/

Запомнить вас будет необходимо удалить конкретный код UIManagedDocument из примера.

Смежные вопросы