Creo que se puede hacer un par de cosas:
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:aPath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
Tenga en cuenta que esto va a anexar NSData a su archivo - NO es un NSString. Tenga en cuenta que si usa NSFileHandle, debe asegurarse de que el archivo exista de antemano. fileHandleForWritingAtPath
devolverá nil si no existe ningún archivo en la ruta. Vea el NSFileHandle class reference.
O usted podría hacer:
NSString *contents = [NSString stringWithContentsOfFile:filepath];
contents = [contents stringByAppendingString:textToWrite];
[contents writeToFile:filepath atomically:YES encoding: NSUnicodeStringEncoding error:&err];
Creo que el primer enfoque sería el más eficiente, ya que el segundo enfoque consiste en leer el contenido del archivo en una NSString antes de escribir los nuevos contenidos en el fichero. Pero, si no desea que su archivo contenga NSData y prefiere mantenerlo en el texto, la segunda opción será más adecuada para usted.
[Actualización] Desde stringWithContentsOfFile es deprecated puede modificar segundo enfoque:
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
supongo que 'NSLog' no va a funcionar de la manera deseada? – zneak
FYI, no hay ningún método en 'NSString' /' NSMutableString' que te permita agregarlo a un archivo. Sin embargo, hay un ejemplo [aquí] (http://lists.apple.com/archives/cocoa-dev/2002/Aug/msg00754.html). – zneak