我使用NSTask运行一些bash命令,并且已经使用了很长时间。但是,最近我尝试这样做时,正常的日志记录在Xcode控制台中停止(例如从NSLog或Cocoa Lumberjack)。控制台仍然显示bash命令可能具有的任何输出,但不会显示其他日志。
日志将正常显示,并在我执行后立即停止:
NSTask *someTask = [NSTask new];
NSArray *inputArgs = @[@"-l", @"-c", script];
[someTask setLaunchPath:@"/bin/bash"];
[someTask setArguments:inputArgs];
[someTask launch] // This is when the logs stop
此问题似乎已从升级到Xcode 5.1.1开始。关于如何收回我可爱消息的任何想法?
答案 0 :(得分:0)
所以这似乎是一个旧的错误与Xcode的重新抬头。我找到了一个描述它的old answer。
简而言之,我不得不将我的代码更改为:
NSTask *someTask = [NSTask new];
NSArray *inputArgs = @[@"-l", @"-c", script];
[someTask setLaunchPath:@"/bin/bash"];
[someTask setArguments:inputArgs];
[someTask setStandardInput:[NSPipe pipe]]; // <-- Added this line.
[someTask launch]