Frage

Ich habe ein paar Dinge zu diesem Problem gefunden, aber bisher hat nichts funktioniert.

Ich versuche, mit dem folgenden Code an das Ende einer Datei zu schreiben:

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];

Wenn ich den Code durchgehe, wird filePath auf „/var/mobile/Applications/1669D96A-1ABA-4A4F-D083-A90EB728691B/MyApp.app/Filename.txt“ gesetzt.

Allerdings gibt das NSFileHandle fileHandleForWritingAtPath Null zurück.Der Code löst keine Ausnahme/Warnung aus und fährt fort, als wäre alles in Ordnung.Wenn ich die Datei in eine Zeichenfolge einlese, ist der neue Text nicht vorhanden, sondern nur der Inhalt, der ursprünglich in der Datei enthalten ist (in Xcode eingegeben).Ich verwende genau denselben Code, um den Pfad zum Lesen der Datei zu ermitteln, und das funktioniert!

War es hilfreich?

Lösung

Das App-Bundle ist schreibgeschützt.Sie können auf keinen Pfad im Bundle schreiben.Deshalb erhalten Sie eine nil Dateihandle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top