NSTask打破了Xcode 5.1.1中的日志记录

时间:2014-06-11 14:11:06

标签: objective-c xcode bash logging

我使用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开始。关于如何收回我可爱消息的任何想法?

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]