Изъять вещи на stdout
на самом деле довольно редко в Какао, учитывая, что почти все проекты имеют GUI по своей природе. Существует относительно немного проектов, которые создаются как инструменты командной строки или иным образом должны иметь дело с stdout
.
Однако Фонд предоставляет средства для записи на стандартный вывод. В частности, NSFileHandle
имеет fileHandleWithStandardOutput
, что дает вам дескриптор файла, который может записывать в stdout
.
Оттуда нужно преобразовать NSString
в NSData
и записать его.
Довольно много шагов, но они легко заключаются в многократно используемую функцию:
void MyLog(NSString *format, ...) {
va_list args;
va_start(args, format);
NSString *formattedString = [[NSString alloc] initWithFormat: format
arguments: args];
va_end(args);
[[NSFileHandle fileHandleWithStandardOutput]
writeData: [formattedString dataUsingEncoding: NSNEXTSTEPStringEncoding]];
[formattedString release];
}