我正在尝试将LESS与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];
编辑:我认为现在这与命令行的着色有关,不是吗?所以我的问题是:避免它们的最佳方法是什么?
答案 0 :(得分:2)
这些是ANSI颜色代码。您可能希望查看是否存在不返回彩色编码文本的任务参数。