63 votes

Objective C : Lecture de fichiers texte

J'ai déjà fait ça avant, mais ça ne marche pas pour moi maintenant. C'est ce que je fais :

NSString* path = [[NSBundle mainBundle] pathForResource:@"test" 
                                                 ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                 error:NULL];
NSLog(@"%@",path);

et il retourne (null) à chaque fois que j'utilise NSLog path et content. Quelqu'un peut-il voir ce que je fais mal ?

49voto

Tommy Points 56749

Sera nil (ce qui sera enregistré comme '(null)') si vous lui passez un chemin qu'il ne peut pas ouvrir. Le seul problème que vous rencontrez est donc que l'instance pertinente de NSBundle est incapable de trouver test.txt dans la partie ressources de votre bundle d'application.

Vous devriez :

  1. vérifier que le fichier se trouve dans votre projet Xcode ; et, si c'est le cas,
  2. vérifiez qu'il est inclus dans la phase "Copy Bundle Resources" sous votre cible sélectionnée (dans l'arborescence du projet à gauche dans la disposition normale de la fenêtre Xcode) et, si c'est le cas,
  3. regardez dans le paquet d'applications généré (trouvez votre produit, faites un clic droit, sélectionnez "Révéler dans le Finder", dans le Finder, faites un clic droit sur l'application et sélectionnez "Afficher le contenu du paquet", puis cherchez votre fichier) pour vous assurer qu'il s'y trouve.

S'il a été copié mais que l'instance pertinente de NSBundle ne le trouve pas, il se passe quelque chose de très étrange.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X