Mam operację ładowania danych, która musi zostać usunięta z głównego wątku, aby uniknąć potencjalnych problemów z blokowaniem. Aby to zrobić, używam NSOperationQueue i NSOperations.Jak zablokować NSOperation do zakończenia zadania NSOperationQueue?
Jednym z problemów, które pojawiły się jednak, jest to, że jedna z operacji istnieje, aby odrodzić dodatkowe operacje w oparciu o przychodzące informacje. Próba rozwiązania tego problemu rozwiązała również drobne problemy, które miałem gdzie indziej, ponieważ rozwiązaniem, które podjąłem było przekazanie NSOperation własnej kolejki do pod zadań.
Problem polega na tym, że gdy tylko "główne" wyjścia, NSOperation będzie oznaczony jako "zakończony", niezależnie od tego, czy pod-kolejka jest zakończona, czy nie; jak mogę zmienić to zachowanie?
Wygląda na to, że szukasz [równoczesnej 'NSOperation'] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSOperation_class/Reference/Reference.html)? –
@CarlVeazey Nie ... dokładnie, ale wygląda na to, że kroki użyte do utworzenia równoczesnej operacji NSOperation robią to samo, czego właśnie szukam. Musisz zastąpić sposób, w jaki metoda startowa obsługuje metodę isFinished/isExecuting i myślę, że właśnie to muszę tutaj zrobić. Muszę przesłonić start, więc nie ustawi się, Finished natychmiast kończy się główna. Co oznacza posługiwanie się materiałem KVO, kiedy zmieniam te właściwości, och radości. – RonLugge
@CodaFi Nie jestem pewien, czy wyraziłem się jasno, ale odpowiedź, którą zasugerowałeś, nie wydaje się mieć sensu. Zależności uniemożliwiają wykonanie operacji, nie zapobiegają jej zakończeniu po rozpoczęciu wykonywania. Przynajmniej tak mówią referencje. – RonLugge