Myślę, że można zrobić kilka rzeczy:
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:aPath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
Zauważ, że to doda NSData do listy plik - NIE NSString. Zauważ, że jeśli używasz NSFileHandle, musisz upewnić się, że plik istnieje przed ręką. fileHandleForWritingAtPath
zwróci zero, jeśli nie istnieje plik na ścieżce. Zobacz NSFileHandle class reference.
Albo można zrobić:
NSString *contents = [NSString stringWithContentsOfFile:filepath];
contents = [contents stringByAppendingString:textToWrite];
[contents writeToFile:filepath atomically:YES encoding: NSUnicodeStringEncoding error:&err];
Uważam, że pierwsze podejście byłoby najbardziej efektywne, ponieważ Drugie podejście polega na odczytanie zawartości pliku do NSString przed zapisaniem nowych zawartość do pliku. Ale jeśli nie chcesz, aby twój plik zawierał NSData i wolał zachować tekst, druga opcja będzie dla ciebie bardziej odpowiednia.
[Aktualizacja] Od stringWithContentsOfFile jest deprecated można zmodyfikować drugie podejście:
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
myślę, że 'NSLog' nie będzie działać tak, jak chcesz? – zneak
FYI, nie ma metody na 'NSString' /' NSMutableString', która pozwoli ci dołączyć ją do pliku. Istnieje jednak przykład [tutaj] (http://lists.apple.com/archives/cocoa-dev/2002/Aug/msg00754.html). – zneak