Activité
La commande suivante, exécutée en travaillant avec iCloud avec des applications (telles que Smultron 4 et TextEdit) qui prennent en charge les documents mobiles -
sudo opensnoop -n ubd
- affiche les fichiers locaux ouverts par le démon d'ubiquité. Les fichiers incluent des bases de données, une base de données par homologue. Un répertoire par homologue sur le chemin suivant:
~/Library/Application Support/Ubiquity
Types de données
Si vous souhaitez mesurer les progrès, choisissez les types à mesurer:
- Données de base
- les documents
- valeur clé.
Économies, progrès et mesure
Données de base
… Les fichiers journaux des modifications, et non le fichier du magasin, sont téléchargés sur iCloud et téléchargés sur chacun des autres appareils d'un utilisateur. Lorsqu'un journal des modifications arrive d'un autre appareil connecté au même compte iCloud, Core Data met à jour la copie locale de votre application de la base de données SQLite, en fonction du journal des modifications reçu. iCloud et Core Data garantissent que chaque base de données locale est mise à jour avec le même ensemble de modifications. …
Considérez: sans interpréter le contenu d'un journal des modifications, vaudra-t-il la peine de mesurer la progression du téléchargement du fichier journal?
Les documents
Dans la bibliothèque des développeurs Mac:
… Les applications basées sur des documents peuvent adopter l'enregistrement automatique en place, et ses documents sont automatiquement enregistrés aux moments appropriés…
Aussi:
Les stratégies d'enregistrement automatique des données soulagent l'utilisateur
… Les points appropriés dans votre code où toutes les modifications liées à l'utilisateur doivent être enregistrées et écrivez ces modifications sur le disque automatiquement. …
Voici quelques moments appropriés où vous pouvez enregistrer automatiquement les données utilisateur:
- Lorsque l'utilisateur ferme la fenêtre de l'application ou quitte l'application (applicationWillTerminate :)
- Lorsque l'application est désactivée (applicationWillResignActive :)
- Lorsque l'utilisateur masque votre application (applicationWillHide :)
- Chaque fois que l'utilisateur apporte une modification valide aux données de votre application
Le dernier élément signifie que vous avez la liberté de sauvegarder les données de l'utilisateur à tout moment où cela est logique de le faire. Par exemple, si l'utilisateur modifie des champs d'un enregistrement de données, vous pouvez enregistrer chaque valeur de champ telle qu'elle est modifiée ou vous pouvez attendre et enregistrer tous les champs lorsque l'utilisateur affiche un nouvel enregistrement. Apporter ces types de modifications incrémentielles garantit que les données sont toujours à jour mais nécessite également une gestion plus fine de votre modèle de données. …
Considérez: ces sauvegardes peuvent être si fréquentes et les montants si petits que cette mesure ne vaudra pas la peine.
item-info.db
J'ai joué avec le navigateur de base de données SQLite pour parcourir la item-info.db
base de données pour le pair qui semble être mon Mac local. Comme je le soupçonnais, l'application ne pouvait parcourir que lorsque le système n'utilisait pas la base de données - dans les deux secondes suivant l'utilisation de Aperçu pour modifier un Untitled.png
dans iCloud, je ne pouvais plus parcourir la base de données… et ainsi de suite.
Les références
Guide de conception iCloud
Guide de programmation de l'application Mac : conception de l'application principale: