Credo che si potrebbe fare un paio di cose:
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:aPath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
Si noti che questo aggiungerà NSData al vostro file - NON una NSString. Nota che se usi NSFileHandle, devi assicurarti che il file esista prima della mano. fileHandleForWritingAtPath
restituirà nulla se nessun file esiste nel percorso. Vedi lo NSFileHandle class reference.
Oppure si potrebbe fare:
NSString *contents = [NSString stringWithContentsOfFile:filepath];
contents = [contents stringByAppendingString:textToWrite];
[contents writeToFile:filepath atomically:YES encoding: NSUnicodeStringEncoding error:&err];
Credo che il primo approccio sarebbe la più efficace, dal momento che il secondo approccio implica la lettura del contenuto del file in un NSString prima di scrivere il nuovo contenuto al file. Ma, se non vuoi che il tuo file contenga NSData e preferisci mantenerlo, la seconda opzione sarà più adatta a te.
[Update] Dal stringWithContentsOfFile è deprecated è possibile modificare secondo approccio:
NSError* error = nil;
NSString* contents = [NSString stringWithContentsOfFile:filepath
encoding:NSUTF8StringEncoding
error:&error];
if(error) { // If error object was instantiated, handle it.
NSLog(@"ERROR while loading from file: %@", error);
// …
}
[contents writeToFile:filepath atomically:YES
encoding:NSUnicodeStringEncoding
error:&err];
See question on stackoverflow
fonte
2012-06-19 18:02:33
credo che 'NSLog' non funziona nel modo desiderato? – zneak
FYI, non esiste alcun metodo su 'NSString' /' NSMutableString' che ti consenta di aggiungerlo a un file. C'è un esempio [qui] (http://lists.apple.com/archives/cocoa-dev/2002/Aug/msg00754.html) però. – zneak