2010-03-16 10 views
2

Exemple: Si je l'ai utilisé, où l'iPhone stocke-t-il le fichier?Lorsque vous enregistrez un fichier sur le disque avec NSKeyedArchiver, où est-il stocké sur l'iPhone?

if (![NSKeyedArchiver archiveRootObject:your_object toFile:@"filename.plist"]) 
    // save failed. 

Sur mon mac, filename.plist va directement à Macintosh HD. Aucun dossier En outre, le NSKeyedArchiver ne semble pas demander un chemin, juste pour un nom de fichier. Étrange ou pas?

Et comment ce fichier a-t-il été sauvegardé avec iTunes?

Répondre

1

archiveRootObject:toFile:
Alors vous devriez passer un chemin au lieu d'un nom de fichier. Sinon, NSKeyedArchiver supposera que vous voulez le stocker dans la racine du disque dur des périphériques.
Pour vous assurer que les choses sont sauvegardées par iTunes, vous devez enregistrer vos données dans le dossier des documents, comme Diederik Hoogenboom vous l'a déjà montré. Jetez un oeil à this guide.

1

L'emplacement approprié pour stocker les fichiers est le dossier de documents:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
4

Eh bien cela dépend en fait de l'endroit où vous demandez à enregistrer le fichier, dans votre cas, vous dites pour stocker filename.plist, qui sera stocké dans la racine de votre /.

si vous voulez stocker dans un endroit précis, juste donner le chemin complet, quelque chose comme ce que Diederik Hoogenboom vous a dit (ce stockera dans les documents dir)

ou juste donner le chemin absolu vous voulez enregistrer le fichier.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectory stringByAppendingPathComponent: @"myFile.plist"]; 
[NSKeyedArchiver archiveRootObject:your_object toFile:filePath]; 

Cela devrait probablement l'avoir un peu éclairci pour vous.