NSKeyed(Un)Archiver et Singleton...

Nebuchad34Nebuchad34 Membre
05:20 modifié dans API AppKit #1
Bonsoir,

J'ai démarré un nouveau projet dans lequel j'ai choisi d'utiliser un singleton. Celui-ci est en fait une classe modèle et le paradigm singleton me permet d'y accéder n'importe où par un simple [MonSingleton sharedSingleton].

C'est très pratique et ça marche très bien. J'ai simplement suivi la doc d'apple pour l'implémentation du paradigme singleton en ObjectiveC.

J'ai facilement réussi à  archiver mon objet avec
[NSKeyedArchiver archiveObject:[MonSingleton sharedSingleton] toFile:path];

Le problème, c'est que je ne sais pas comment désarchiver l'objet en faisant en sorte qu'il "écrase" mon singleton.
[MonSingleton sharedSingleton] = [NSKeyedUnarchiver unarchiveObjectWithFile:path]; ne fonctionne pas...

Merci.

Réponses

  • schlumschlum Membre
    05:20 modifié #2
    Non, ça ne risque pas de fonctionner... Il faut lui implémenter "initWithCoder" puis faire un "release" et un "initWithCoder"...
    Par contre c'est pas trop le truc qui se fait, il y a un risque qu'un autre thread essaie d'accéder au singleton à  ce moment par exemple.
  • mpergandmpergand Membre
    05:20 modifié #3
    Oui, c'est bien tordu comme idée  :)

    Mais ça doit être possible:

  • Nebuchad34Nebuchad34 Membre
    05:20 modifié #4
    Bien, j'ai finalement procédé autrement. De manière "plus propre".

    j'archive un NSDictionnary qui contient les données modèles à  sauvegarder. et ensuite en le dsarchivant j'assigne les données du modèle au contenu du NSDictionnary...

Connectez-vous ou Inscrivez-vous pour répondre.