我正在尝试在我的多线程应用中收到通知NSTaskDidTerminateNotification
,但我无法使其正常工作。当我在单线程应用程序上测试它时,它似乎确实有效。在init
我有[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(taskDidEnd:) name: NSTaskDidTerminateNotification object: myTask];
,我很确定它会被调用,因为其他对象(比如myTask)正在那里启动。 taskDidEnd:
方法定义为
- (void)taskDidEnd: (NSNotification *)aNotification
{
NSLog(@"Task succeeded.");
}
在dealloc中,观察者被移除。
这一切都发生在一个在一个单独的线程中启动的对象中,我希望在同一个对象中接收该通知。
答案 0 :(得分:1)
你是否在该线程上运行了运行循环?如果没有,NSTask将不会注意到任务已结束(或任务尚未结束)并且不会发布通知。