NSLog () не выводится после обратного вызова - PullRequest
5 голосов
/ 02 июля 2011

Я получил вызов 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 ]

2 голосов
/ 04 июля 2011

Добавление [task setStandardInput:[NSPipe pipe]]; может вернуть ваши журналы, как указано на CocoaDev: NSTask .

2 голосов
/ 02 июля 2011

Как оказалось, XCode не нравится, когда вы выполняете задачу, используя / bin / bash -c (task) (команды).Теперь я изменил его для непосредственного выполнения задачи, и теперь мои операторы NSLog () работают.

См. здесь для справки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...