NSLog()在回调后不输出

时间:2011-07-02 17:26:21

标签: objective-c cocoa nslog

我在一个我知道被调用的方法中有一个NSLog调用(我设置了一个断点)。但是在那种方法中没有输出,或者在该方法之后根本没有输出。当应用程序启动时,我的NSLog语句工作正常。我想知道这是否是某种线程问题。

NSLog在taskDidTerminate方法中停止,该方法是来自NSTask的回调:

[[NSNotificationCenter defaultCenter] addObserver:self
                          selector:@selector(taskDidTerminate:)
                          name:NSTaskDidTerminateNotification
                          object:localTask];

有什么想法吗?

编辑:taskDidTerminate

- (void) taskDidTerminate: (NSNotification *) notification 
{
    NSLog(@"TaskDid Terminate");
    [task.delegate taskCompleted:task];
}

2 个答案:

答案 0 :(得分:2)

事实证明,当你使用/ bin / bash -c(task)(命令)执行任务时,它看起来并不像XCode。我现在已将其更改为直接执行任务,现在我的NSLog()语句正在运行。

请参阅here以获取参考。

答案 1 :(得分:2)

添加[task setStandardInput:[NSPipe pipe]];可能会按照CocoaDev: NSTask上的说明恢复您的日志。