Je suis au tout début de la création d'une application dans laquelle je souhaite enregistrer, synchroniser et sauvegarder des données. L'application ne stockera aucun fichier uniquement des données dans une base de données. Ce sera iOS 8 et plus, donc je pourrai utiliser CloudKit. J'ai fait des recherches et je ne suis toujours pas clair sur la façon dont Core Data, iCloud et CloudKit fonctionnent ensemble.
Pour autant que je sache, CloudKit est juste un moyen d'obtenir et de récupérer des données vers / depuis le cloud. CloudKit est-il simplement une manière différente de synchroniser les données avec iCloud?
Mes questions sont:
Si j'utilise CloudKit, dois-je encore créer une base de données de base locale?
- Si oui, sera-t-il automatiquement synchronisé avec iCloud ou devrais-je appeler des méthodes pour stocker aux deux endroits?
Si les données ne sont stockées que dans le cloud, l'utilisateur pourra y accéder lorsque l'appareil iOS n'est pas connecté à Internet. J'ai lu que CloudKit n'aura qu'une mise en cache limitée.
- Comment cela fonctionnera-t-il si le compte iCloud n'est pas activé.
Si quelqu'un peut en quelque sorte décomposer ce que fait chaque technologie dans le processus de sauvegarde et de synchronisation de la base de données de données de base hors ligne et en ligne.
Ma compréhension actuelle est:
Core Data est utilisé pour stocker des données localement
iCloud synchronise les données et les stocke dans le cloud
CloudKit donne la possibilité de stocker et de gérer des données dans le cloud ??
J'espère avoir fourni suffisamment d'informations pour que cette question ne soit pas fermée.
Réponses:
C'est comme ça:
Si vous souhaitez utiliser CloudKit avec Core Data, vous devez écrire votre propre code personnalisé à traduire entre les objets gérés et les enregistrements CloudKit. Ce n'est pas impossible, mais c'est plus de code à écrire. C'est peut- être plus fiable, mais il est trop tôt pour le dire avec certitude.
J'ai écrit un article de blog décrivant CloudKit du point de vue de quelqu'un qui a utilisé Core Data et iCloud dans le passé.
Mise à jour , juin 2016: dans la documentation la plus récente de
NSPersistentStoreCoordinator
, tout ce qui concerne Core Data avec iCloud est marqué comme obsolète. En conséquence, il devrait probablement être évité pour de nouveaux développements.la source
Avec iOS 13, Apple a annoncé de nouvelles fonctionnalités dans Core Data pour mieux fonctionner avec CloudKit. Le principal ajout est NSPersistentCloudKitContainer qui gère essentiellement la synchronisation entre Core Data et CloudKit pour vous.
Vous pouvez en savoir plus dans la session WWDC Utilisation des données de base avec CloudKit .
Apple a également publié une belle collection de documents pour cette utilisation même: la mise en miroir d'un magasin de données de base avec CloudKit .
la source