Deep copy d'un objet
UniX
Membre
Salut.
Je voudrais faire une deep copy d'un objet perso. Comme il contient un NSMutableArray, j'ai vu l'astuce d'Eddy58, et j'ai donc fait :
L'objetCible et les objets contenus dans le NSMutableArray implémentent tous le protocole NSCoding (je l'utilise par ailleurs pour archiver tout ça ...). Là , il me met :
Pfff, il est jamais content celui-là ..... >:(
Je voudrais faire une deep copy d'un objet perso. Comme il contient un NSMutableArray, j'ai vu l'astuce d'Eddy58, et j'ai donc fait :
MaClasse *objetCibleCopie = [NSUnarchiver unarchiveObjectWithData:[NSArchiver archivedDataWithRootObject:objetCible]];
L'objetCible et les objets contenus dans le NSMutableArray implémentent tous le protocole NSCoding (je l'utilise par ailleurs pour archiver tout ça ...). Là , il me met :
encodeObject:forKey: only defined for abstract class. Define -[NSArchiver encodeObject:forKey:]!
Pfff, il est jamais content celui-là ..... >:(
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Malheureusement, les keyedArchiver ne sont disponibles qu'avec 10.2 et ultérieur. Donc, si tu veux que ton appli supporte 10.1, il faut que dans ton encodeWithCoder: et initWithCoder: tu testes si il s'agit d'un keyedArchiver ou pas grace à la méthode allowsKeyedCoding et que tu agisses en conséquence (remplacer les encodeObject:forKey: par des encodeObject: "tout simple").
Bon code
Et vous savez le prire dans cette histoire ? Ben c'est la 2ème fois que je me fais avoir pour la même connerie .....
Promis, il n'y en aura pas 3 !
Merci fouf.
Tu sais ce qu'on dit : "Jamais 2 sans 3"...
@Jamais 2 sans trois
A moins que tu veuille faire une chaà®ne de type C... :-* :kicking: :(renaud):