Вопросы относительно основных данных iCloud + - PullRequest
3 голосов
/ 01 апреля 2012

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

Однако у меня возникают проблемы, когда синхронизация iCloud включена или выключена в приложении только на одном из устройств или когда приложение удалено с устройства и переустановлено. В обоих случаях данные не синхронизируются обратно на устройство, хотя они прекрасно доступны на втором устройстве (которое не было отключено / переустановлено).

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

Просмотр папок с мобильными документами на моем Mac все еще показывает множество журналов транзакций в хранилище icloud моего приложения.

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

Интересно, могу ли я что-нибудь сделать с этим противоречивым состоянием, которое создается, когда только одно устройство временно отключено iCloud или приложение удалено с ОДНОГО устройства?

Что касается моего кода, то это копия 1: 1 примера получений от apple.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Даниэль Паско говорил о , используя Core Data и iCloud вместе на NSConference 2012. Некоторые заметки из этого поста:

запуск с -com.apple.coredata.ubiquity.logУровень 3 для получения спама в журнале сообщений о том, что делают Core Data и iCloud.

Вывод из этого доклада, по-видимому, заключается в том, что использование Core Data и iCloud действительно не готовы друг к другу на данном этапе.

Он опубликовал обновленные рецепты базовых данныхпроект на Github , который может или не может решить вашу проблему.

1 голос
/ 08 апреля 2012

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

Я реализовалПример проекта, демонстрирующий простой способ добавления поддержки iCloud в приложения CoreData в стиле библиотеки.Он называется iCloudStoreManager и доступен на github .

Я все еще тестирую его, прежде чем добавить поддержку iCloud в одно из своих собственных производственных приложений.Это работает, но я вижу неожиданные ошибки и задержки, когда iPad 3 в миксе.Это работает, но с большими задержками.

Я также тестировал на iPhone 4, iPhone 4S и оригинальном iPad, и любое сочетание этих устройств хорошо работает на моем опыте.

...