Cocoa 与NSTask一起使用时,来自LESS的奇怪输出

Cocoa 与NSTask一起使用时,来自LESS的奇怪输出,cocoa,less,nstask,Cocoa,Less,Nstask,我试图在NSTask中使用更少的代码。它基本上可以工作,但输出有时非常奇怪。例如: [31mParseError: Unrecognised input[39m[31m in [39m/Volumes/Macintosh HD/Users/x/Sites/y/css/style.less[90m on line 4, column 2:[39m [90m3 background-color: purple;[39m 4 [7m[31m[1md[22md[39m[27m [90m5 }[3

我试图在NSTask中使用更少的代码。它基本上可以工作,但输出有时非常奇怪。例如:

[31mParseError: Unrecognised input[39m[31m in [39m/Volumes/Macintosh HD/Users/x/Sites/y/css/style.less[90m on line 4, column 2:[39m
[90m3   background-color: purple;[39m
4   [7m[31m[1md[22md[39m[27m
[90m5 }[39m[0m[0m
这个
[31m
等从何而来

我的相关代码是:

NSTask *task = [[NSTask alloc] init];
task.launchPath = [bundle.resourcePath stringByAppendingPathComponent:@"less.js/bin/lessc"];
task.arguments = @[path,cssPath];

NSPipe *outputPipe = [NSPipe pipe];
[task setStandardError:outputPipe];

[task setTerminationHandler:^(NSTask *task) {
    NSString *s = [[NSString alloc] initWithData: [[outputPipe fileHandleForReading] readDataToEndOfFile] encoding:NSUTF8StringEncoding];
    if(s.length > 0){
        [[NSAlert alertWithMessageText:@"LESS Compilation" defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:@"%@",s] runModal];
    }
}];
[task launch];

编辑:我认为这与命令行中的颜色有关,不是吗?所以我的问题是:避免它们的最佳方法是什么?

这些是ANSI颜色代码。您可能想看看是否有任务参数不会返回颜色编码的文本。

非常感谢。在我的case,使用更少的资源,选项
--no color
解决了这个问题