Как трябва да добавя поддръжка на 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