Как мне добавить поддержку iCloud для приложения CoreData, в котором уже есть данные?

Я пытаюсь добавить поддержку iCloud (только для iOS7) для моего приложения CoreData, которое уже некоторое время используется пользователями. Поэтому мне нужно убедиться, что все введенные пользователем данные не будут повреждены или потеряны.

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

Так что мне делать, чтобы этого не произошло? Или может я что-то не так делаю?


person codingrhythm    schedule 20.11.2013    source источник


Ответы (1)


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

РЕДАКТИРОВАТЬ:

Я только что опубликовал пример библиотечного стиля с поддержкой следующего:

  • Use of Local or iCloud Core Data store
  • Includes a Settings Bundle (note that this creates a settings page in the Settings App) that includes:
    • Use iCloud preference setting (ON or OFF)
    • Make Backup preference setting (ON or OFF)
    • Display application Version and Build Number
  • Prompts the user to choose a storage option when the Use iCloud preference is changed to ON
  • Migrates Core Data store to and from iCloud depending on the users preference setting and response to prompts
  • Detects deletion of iCloud store from another device and cleans up by creating a new empty iCloud store
  • Checks for existing iCloud files when migrating local store to iCloud and prompts user whether to merge or discard data in local store if an iCloud file exists
  • Makes a Backup of the Core Data store if Make Backup preference is set to ON.  Backup file name is persistentStore_Backup_yyyy_MM_dd_HH_mm_ss. To use it:
    • set Backup preference ON and next time the app is activated it will make a backup of the current Core Data store and reset the preference to OFF
    • file can be copied to PC or Mac from iTunes
    • to restore simply set app to use Local files (Use iCloud preference OFF) and replace the persistentStore file with the required backup file (note the file must be called persistentStore).
person Duncan Groenewald    schedule 21.11.2013