2008-11-26 11 views
6

Comment lire un fichier de données dans un projet iPhone? Par exemple, disons que j'ai un fichier statique appelé « level.dat » qui est structuré comme suit: obstacles: 10 temps: 100 obstacle1: 10,20 ...Chargement de fichiers de données dans le projet iPhone

Je voudrais lire la contenu du fichier dans un NSString puis faire l'analyse. Comment lire le contenu d'un fichier dans une chaîne? Aussi, où devrait se trouver le fichier "level.dat" dans le projet? Devrait-il être sous "Ressources" ou juste dans le répertoire principal?

Merci d'avance!

Répondre

18

Voir cette réponse: How to fopen() on the iPhone? qui montre comment accéder aux ressources de votre offre groupée. Une fois que vous avez le chemin, utilisez simplement [NSString stringWithContentsOfFile: encoding: error:].

NSString *path = [[NSBundle mainBundle] pathForResource: @"level" ofType: @"dat"] 
NSError *error = nil; 
NSString *data = [NSString stringWithContentsOfFile: path 
              encoding: NSUTF8StringEncoding 
               error: &error]; 
-1

Si vous avez besoin d'aide analyse de la chaîne de données, il y a un article utile sur Cocoa For Scientist

3

Bien que ce n'est pas ce que vous avez demandé, envisager de transformer vos fichiers en plists. Vous devrez les reformater en XML, mais vous pouvez les charger directement dans un NSDictionary avec:

dict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"levels" ofType:@"plist"]]; 
+0

Notez que vous pouvez faire la même chose avec les tableaux, il est très probable que ses données soient plus adaptées à un niveau supérieur de tableaux plutôt qu'à un dictionnaire. –

0

Avez-vous envisagé de mettre les données dans une base de données SQLite au lieu d'un fichier plat? Je trouve que l'API est très facile à utiliser sur l'iPhone.

C'est comment je fais tout mon stockage de données sur le téléphone maintenant.

Questions connexes