Domanda

Sto cercando di ottenere il NSTaskDidTerminateNotification di notifica nella mia app multithreading ma non riesco a farlo funzionare. Sembra di lavoro quando ho testato su una singola applicazione filettato. In init ho [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(taskDidEnd:) name: NSTaskDidTerminateNotification object: myTask]; e sono abbastanza sicuro che venga chiamato perché gli altri oggetti (come MyTask) sono iniziati lì. E il metodo taskDidEnd: è definito come

- (void)taskDidEnd: (NSNotification *)aNotification
{
     NSLog(@"Task succeeded.");
}

E nel dealloc l'osservatore viene rimosso.

Il tutto avviene in un oggetto che viene messo all'interno di un thread separato e desidero ricevere la notifica che all'interno dello stesso oggetto.

È stato utile?

Soluzione

Hai eseguito il ciclo corsa su quel thread? In caso contrario, non sarà NSTask avviso che il compito finito (o l'operazione non sarà ancora finito) e non inviare la notifica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top