Базовые данные, iCloud и стоковые объекты - PullRequest
2 голосов
/ 24 декабря 2011

Я обновляю локальное приложение на основе Core Data для поддержки iCloud.Одна из задач, которую я ожидаю, связана с тем, что я называю «стоковыми объектами» - начальными данными, которые приложение предоставляет при первом запуске, которые будут настраивать 99% пользователей.

Фондовые объекты

Item A
Item B

Индивидуальные объекты

Tomatoes
Potatoes

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

Одним из подходов может быть проверкаДанные iCloud синхронно запускаются при первом запуске, и, если они существуют, не создаются исходные объекты.Но, тем не менее, пользователь может находиться в автономном режиме при первом запуске, а затем при втором запуске, может произойти такое же нежелательное слияние локальных стандартных объектов с пользовательскими объектами iCloud.

Существуют ли способы добавить логику в слияния iCloud, поэтомучто прибытие пользовательских объектов из облака (помидоры и картофель) может сигнализировать мне об удалении локальных объектов (пункт A и элемент B) до того, как они получат лучи?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 января 2012

Я не уверен, что это лучший подход, но это то, что я делаю:

  1. Когда пользователь выбирает включение iCloud, я проверяю, пустой ли его каталог iCloud.
  2. Если это так, нет проблем;Я перенесу базу данных в новое локальное хранилище, в котором включены параметры iCloud, чтобы все существующие данные перемещались в облако.
  3. Если нет, я проверяю, пуста ли локальная база данных.Если это так, я уничтожаю все стандартные объекты и беру все из облака.Если это не так, я говорю пользователю, что в настоящее время приложение не может объединить локальную базу данных с базой данных iCloud, и прошу их удалить свои данные (или переустановить), что позволяет обойти эту проблему.
0 голосов
/ 24 декабря 2011

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

...