NSFileHandle fileHandleForWritingAtPath retourne nil avec chemin d'accès valide
-
21-12-2019 - |
Question
trouvé quelques petites choses sur cette question, mais jusqu'à présent, rien n'a fonctionné.
Je suis en train d'écrire à la fin d'un fichier en utilisant le code suivant:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Filename" ofType:@"txt"];
NSString *textToWrite = @"Test";
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
Quand je marche à travers le code chemin d'accès est défini pour "/var/mobile/Applications/1669D96A-1ABA-4A4F-D083-A90EB728691B/MyApp.app/Filename.txt".
Cependant, le NSFileHandle fileHandleForWritingAtPath retourne nil.Le code n'a pas de soulever une exception/avertissement et continue comme si fine.Quand j'ai lu le fichier dans une chaîne, le nouveau texte n'y est pas, seulement le truc c'est d'abord dans le fichier (tapé dans Xcode).J'ai utiliser le même code pour obtenir le chemin d'accès pour la lecture du fichier, et qui fonctionne!
La solution
L'app bundle est en lecture seule.Vous ne pouvez pas écrire sur n'importe quel chemin d'accès dans le bundle.C'est pourquoi vous obtenez une nil
descripteur de fichier.