CoreData et iCloud

Je développe une application de données de base et je pensais ajouter le support iCloud, mais après avoir regardé sur le web, j'ai souvent entendu dire que iCloud + CoreData n'est pas fiable et se casse souvent.

Est-ce vrai? Un livre que je lis sur le sujet des données de base mentionne que iCloud + CoreData n'était pas fiable dans iOS 5 mais a depuis été corrigé, mais j'ai aussi entendu le contraire, que iCloud + CoreData est toujours peu fiable dans iOS 6. Si oui stockerait la base de données dans un personnalisé format d'aide?

Toute aide serait grandement appréciée.

26
demandé sur john smith 2013-06-12 16:15:08

3 réponses

Maintenant que iOS 7 est sorti, nous pouvons en parler. Et tout semble indiquer que dans iOS 7 iCloud Core Data sync a été corrigé. Je suis sur le point d'ajouter iCloud Core Data sync à une application (iOS 7 uniquement) que je construis, donc je ne peux pas encore parler d'expérience personnelle, mais tout ce que j'ai entendu suggère qu'il est maintenant bon pour le prime time.

Je recommande fortement de regarder la vidéo de session" Quoi de neuf dans Core Data et iCloud " de la WWDC 2013: https://developer.apple.com/videos/wwdc/2013/?id=207 (nécessite une adhésion au programme Apple Developer). Je l'ai regardé deux fois maintenant, et ils ont certainement rendu les choses plus simples.

Enfin, je recommande de jeter un oeil à UbiquityStoreManager sur GitHub. C'est une bibliothèque qui fait à peu près toutes les parties douloureuses des données de base iCloud pour vous. Il a été modifié pour prendre en compte les améliorations significatives dans iOS 7, tout si vous le souhaitez profitez-en votre application doit être iOS 7 uniquement (cela s'applique que vous utilisiez la bibliothèque ou non).

Mise à jour: Depuis la publication de cette réponse, je peux maintenant parler d'expérience personnelle, et peut confirmer que Core Data iCloud Sync dans iOS 7 est solide comme le roc, et qui plus est, incroyablement facile à mettre en œuvre. Je l'ai ajouté à mon application sans utiliser UbiquityStoreManager ou toute autre bibliothèque tierce et c'était très simple. Littéralement juste quelques lignes de code.

EDIT: j'ai créé un dépôt GitHub avec ma pile de données iCloud Core pour iOS 7. J'espère que ça aide: https://github.com/mluisbrown/iCloudCoreDataStack

57
répondu mluisbrown 2014-04-07 15:51:58

Le lien vers La vidéo a changé: https://developer.apple.com/videos/wwdc/2013/?id=207

Edit: Cela devrait être un commentaire à la dernière réponse mais je n'ai pas la réputation 50+ requise: (

10
répondu HeyMan 2014-04-05 02:51:25

J'ai eu une version Swift basée sur iCloudCoreDataStack de @mluisbrown, avec du code généré par Xcode et du support technique Apple, à https://github.com/hyouuu/iCloudCoreData-Swift

J'ai peut - être fait des erreurs évidentes-aidez-nous à le rendre meilleur!

1
répondu hyouuu 2014-11-07 17:14:19