Согласно документации по спецификаторам строкового формата Objective-C , они соответствуют спецификации IEEE printf , которая позволяет указывать выравнивание и длину поля.
Это позволяет вам использовать что-то вроде следующего, чтобы получить желаемые результаты:
NSString *rightAligned = @"foo";
NSString *leftAligned = @"1";
NSLog(@"| %15@ | %-15@ |", rightAligned, leftAligned);
// prints "| foo | 1 |"
РЕДАКТИРОВАТЬ:
В комментариях rmaddy, если вы используете [NSString stringWithFormat:]
вам может потребоваться преобразовать ваши строки NSString в строки C, чтобы заставить это работать:
NSString *result = [NSString stringWithFormat:@"| %15s | %-15s |",
[rightAligned cStringUsingEncoding:NSUTF8StringEncoding],
[leftAligned cStringUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"%@", result);