Activité
La commande suivante, exécutée lors de l'utilisation d'iCloud avec des applications (telles que Smultron 4 et TextEdit) qui prennent en charge les documents mobiles, est la suivante : 1.
sudo opensnoop -n ubd
- montre les fichiers locaux ouverts par le démon ubiquity. Les fichiers incluent les bases de données, une base de données par pair. Un répertoire par pair au chemin suivant :
~/Library/Application Support/Ubiquity
Types de données
Si vous souhaitez mesurer les progrès, décidez des types de mesures à effectuer :
- Données de base
- documents
- clé-valeur.
Sauvegardes, progrès et mesures
Données de base
Les fichiers du journal des modifications, et non le fichier de stockage, sont téléchargés vers iCloud et téléchargés sur chacun des autres appareils de l'utilisateur. Lorsqu'un journal des modifications de modification arrive d'un autre appareil rattaché au même compte iCloud, Core Data met à jour la copie locale de la base de données SQLite de votre application, en fonction des éléments suivants sur la base du journal des modifications reçu. iCloud et Core Data veillent à ce que chaque base de données locale soit mise à jour avec le même ensemble de données. base de données locale est mise à jour avec le même ensemble de modifications.
Réfléchissez : sans interpréter le contenu d'un journal des modifications, sera-t-il utile de mesurer la progression du téléchargement du fichier journal ?
Documents
Dans la bibliothèque du développeur Mac :
Les applications basées sur les documents peuvent adopter l'enregistrement automatique en place, et ses documents sont automatiquement sauvegardés aux moments opportuns
Aussi :
Les stratégies automatiques de sauvegarde des données soulagent l'utilisateur
les points appropriés dans votre code où toute modification liée à l'utilisateur doivent être sauvegardés et écrire ces changements sur le disque automatiquement.
Quelques moments appropriés où vous pouvez sauvegarder automatiquement les données de l'utilisateur sont les suivants :
- Lorsque l'utilisateur ferme la fenêtre de l'application ou quitte l'application (applicationWillTerminate :)
- Lorsque l'application est désactivée (applicationWillResignActive :)
- Quand l'utilisateur cache votre application (applicationWillHide :)
- Chaque fois que l'utilisateur apporte un changement valide aux données dans votre application.
Le dernier point signifie que vous avez la liberté de sauvegarder les données de l'utilisateur. à chaque fois que cela s'avère utile. Par exemple, si l'utilisateur est modifie les champs d'un enregistrement de données, vous pouvez enregistrer chaque chaque valeur de champ au fur et à mesure qu'elle est modifiée, ou vous pouvez attendre et enregistrer tous les champs lorsque l'utilisateur affiche les données. un nouvel enregistrement. Ces types de modifications incrémentielles garantissent que que les données sont toujours à jour, mais elle nécessite une gestion plus fine de votre modèle de données. gestion plus fine de votre modèle de données.
Pensez-y : ces économies peuvent être si fréquentes, et les montants si faibles, que la mesure n'en vaut pas la peine.
item-info.db
J'ai joué avec Navigateur de bases de données SQLite pour parcourir le item-info.db
pour le pair qui semble être mon Mac local. Comme je le soupçonnais, l'application ne pouvait naviguer que lorsque le système n'utilisait pas la base de données. Untitled.png
dans iCloud, je ne pouvais plus parcourir la base de données et ainsi de suite.
Références
Guide de conception iCloud
Guide de programmation des applications Mac : The Core App Design :