Writing to a new line of a file in Objective-C

Kulpreet picture Kulpreet · Apr 15, 2010 · Viewed 8k times · Source

For some strange reason, the \n and \r escape sequences do not seem to be working in my code. I want to write each NSString on a new line of the file, but it just appends it the last string on one line. Here's the code:

for (Entry *entry in self.entries) {
    NSString *path = @"/Users/me/File.txt";
    NSString *string = (@"%@\r\n", [entry thisEntry]);
    NSFileHandle *fh = [NSFileHandle fileHandleForWritingAtPath:path];
    [fh seekToEndOfFile];
    [fh writeData:[string dataUsingEncoding:NSUnicodeStringEncoding]];
    [fh closeFile];
}

Am I doing something wrong? Forgive me as I am new to Objective-C.

Answer

Dave DeLong picture Dave DeLong · Apr 15, 2010

Your problem is this:

NSString *string = (@"%@\r\n", [entry thisEntry]);

It should be:

NSString *string = [NSString stringWithFormat:@"%@\r\n", [entry thisEntry]];