2010-07-30 3 views
0

J'ai cette méthode simple pour retourner le chemin du fichier. Je passe le nom de fichier comme argument. Puis, quand j'appelle cette méthode, cette méthode retourne 'null' si elle s'exécute sur le périphérique mais fonctionne correctement sur le simulateur. Y a-t-il quelque chose que je fasse de mal?NSString est retourné comme 'null'

-(NSString*) getFilePathForFile:(NSString*)fileName 
{ 
    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [array objectAtIndex:0]; 
    NSString *temp = [documentsDirectory stringByAppendingPathComponent:fileName]; 
    return temp; 
} 

NSString *path = [self getFilePathForFile:@"settingInfo.plist"] 

Toute aide serait appréciée. Merci

+0

Avez-vous parcouru cette méthode dans le débogueur? Vous pouvez sûrement avoir une idée plus claire de l'endroit où quelque chose tourne mal? –

+0

Je voudrais ajouter un peu de «NSLog» pour voir où les choses vont de côté. 'NSLog (@" fileName =% @ ", nomfichier);', 'NSLog (@" tableau =% @ ", tableau);', 'NSLog (@" documentsDirectory =% @ ", documentsDirectory);', et ' NSLog (@ "temp =% @", temp); 'devrait vous montrer exactement où votre problème est. Cela rendra la solution plus facile. – theMikeSwan

+0

J'ai essayé NSLog et il imprime tout correctement quand nous sommes dans la méthode mais quand la valeur est retournée, elle est retournée nulle. Je ne comprends pas pourquoi? – Ideveloper

Répondre

0

Cela ressemble à une sorte de problème de gestion de la mémoire. Avez-vous essayé d'utiliser "Build and Analyze" pour voir si Xcode peut détecter des problèmes de mémoire?

Sinon, essayez et voyez si vous obtenez quelque chose non nulle:

NSString *path = [[self getFilePathForFile:@"settingInfo.plist"] retain]; 
0

La seule façon cette méthode peut échouer et ne pas jeter une exception est si le tableau retourné par NSSearchPathForDirectoriesInDomains est nul. Vérifiez qu'un tableau valide est renvoyé.

Questions connexes