2009-04-15 3 views
5

Une véritable question pour les débutants. J'ai une sous-classe NSView dans laquelle je crée un NSMutableArray contenant NSValues. Lorsque je veux écrire le tableau dans un fichier en utilisant writetofile: atomatically: le fichier est créé mais il ne contient aucun des NSValues ​​que contient le tableau mutable. Est-ce que quelqu'un sait comment je peux écrire avec succès ce tableau mutable dans un fichier?problème d'écriture d'un NSMutableArray au fichier dans le cacao

Merci

Répondre

15

NSValues ​​ne peuvent pas être enregistrés dans un plist (qui est ce writeToFile: atomiquement: fait). Jetez un oeil here pour les valeurs que vous pouvez enregistrer. (NSNumber est un type de NSValue que vous pouvez enregistrer, mais d'autres valeurs NSValues ​​échouent.)

Si vous voulez enregistrer votre tableau avec NSValues, vous pouvez utiliser archiving au lieu de writeToFile: atomically :. NSArray et NSValue prennent tous deux en charge l'archivage, il vous suffit donc de convertir le tableau en archive et de sauvegarder ces données dans un fichier. (Il comprendra les NSValues ​​aussi bien.) Le code ressemble à ceci:

[NSKeyedArchiver archiveRootObject:myArray toFile:@"myPath"]; 

Pour le charger, il suffit d'utiliser:

NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"myPath"]; 
+0

J'utilisé à la place NSArchiver et NSUnarchiver et il fonctionne parfaitement. Merci –

+3

De rien. Notez que NSKeyed [Un] Archiver est préféré à NS [Un] Archiver de nos jours. –

Questions connexes