readFromData:ofType:error:, Exception de NSKeyedUnarchiver incomprehensible...
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.