readFromData:ofType:error:, Exception de NSKeyedUnarchiver incomprehensible...
Nebuchad34
Membre
Bonjour,
J'essayer de désarchiver un fichier créé avec la précédente version de mon programme.
La précédente version n'a aucun soucis pour désarchiver l"archive en faisant appel à
Mais si j'essaye de faire la même chose dans la nouvelle version, le NSKeyedUnarchiver lève une exception lorsqu'il s'agit du type de fichier associé à l'ancienne version, et je ne comprends vraiment pas pourquoi dans un cas il arrive à désarchiver et pas dans l'autre....
J'essayer de désarchiver un fichier créé avec la précédente version de mon programme.
La précédente version n'a aucun soucis pour désarchiver l"archive en faisant appel à
- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError<br />{<br /> NSMutableDictionary *savedInfos = nil;<br /> @try {<br /> savedInfos = [NSKeyedUnarchiver unarchiveObjectWithData:data];<br /> }
Mais si j'essaye de faire la même chose dans la nouvelle version, le NSKeyedUnarchiver lève une exception lorsqu'il s'agit du type de fichier associé à l'ancienne version, et je ne comprends vraiment pas pourquoi dans un cas il arrive à désarchiver et pas dans l'autre....
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Quel boxons ça fait juste pour pouvoir réouvrir d'anciens fichiers...
Comment faire pour que l'utilisateur ne puisse pas enregistrer dans le fichier avec l'ancienne extension ?
j'explique :
soit la nouvelle extension .newext
et l'ancienne .oldext
ma classe NSDocument sait maintenant lire les .oldext, mais je veux que, lorsque l'utilisteur fait un "fichier > enregistrer", il se voit proposer un NSSavePanel (une boite de dialogue d'enregistre sous en somme),
plutôt que d'écraser le fichier original qui est à la mauvaise extension.
Comment faire ?
et en utilisant la méthode filType pour changer le comportement en fonction du type de fichier.