Sauvegarde partielle
Flo
Membre
Bonjour à tous,
Alors mon problème est le suivant, je souhaiterai sauvegarder un graph de données en écrivant dans le fichier uniquement les données qui ont changées...
En gros l'appli charge un fichier (archive) qui contient le graph et quand l'utilisateur fait des changements et qu'il souhaite les sauvegarder, il me faudrait une méthode pour ne pas réécrire intégralement le fichier mais juste modifier les parties nécessaires. Est-ce possible en utilisant NSKeyedArchiver/NSKeyedArchiver ? Ou est-ce que je peux me brosser ?
J'ai cherché dans la doc apple mais rien de bien concluant... merci d'avance pour vos réponses et vive oc !
Alors mon problème est le suivant, je souhaiterai sauvegarder un graph de données en écrivant dans le fichier uniquement les données qui ont changées...
En gros l'appli charge un fichier (archive) qui contient le graph et quand l'utilisateur fait des changements et qu'il souhaite les sauvegarder, il me faudrait une méthode pour ne pas réécrire intégralement le fichier mais juste modifier les parties nécessaires. Est-ce possible en utilisant NSKeyedArchiver/NSKeyedArchiver ? Ou est-ce que je peux me brosser ?
J'ai cherché dans la doc apple mais rien de bien concluant... merci d'avance pour vos réponses et vive oc !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Sinon si c'est vraiment gros tu peux peut-être changer ton format de sauvegarde et découper tes données en plusieurs sous-fichiers. Et faire un "bundle" en fait, qui contiendrait tout ce qu'il faut en un seul bloc.
Un peu par exemple comme Carnet d'Adresses qui, il me semble, stocke un fichier qui liste les identifiants des contacts et des groupes, puis un fichier par groupe de contacts ainsi qu'un fichier par contact. Comme ça si tu changes juste un contact, ça n'a qu'à réécrire le fichier correspondant à sa fiche sur le disque et c'est tout. Tu peux pas faire un truc équivalent de ton côté, selon les infos et la structure que tu as à sauvegarder ?
Le graphe n'est pas spécialement grand, c'était juste par soucis d'optimisation... j'avais pensé à travailler sur une NSMutableData conservée qu'on modifie à chaque fois mais c'est beaucoup trop gourmand en mémoire. Je ne souhaite pas particulièrement garder l'historique des modifications...
Tant pis, je réécrirai tous à chaque coup où si les données deviennent trop importantes, je penserai aux fichiers séparés, merci !
La solution c'est Core Data si chaque noeud est un NSManagedObject.
+
Chacha