Pytanie wielowątkowe w Objective-C 2.0

Mam głównego delegata aplikacji, który zawiera metodę, która zwraca obiekt. Ten delegat aplikacji działa w głównym wątku.

Mam także NSOperation, który jest uruchamiany na innym wątku. Oprócz tego, że czasami mogę wywołać metodę delegowania aplikacji w moim głównym wątku, muszę również wywołać ją z mojego wątku NSOperation, aby uzyskać obiekt, który zwróci. Moje pierwsze pytanie brzmi: jeśli zadzwonię do tego z mojego innego wątku ...

id newObject = [[[UIApplication sharedApplication] delegate] myMethod];

... czy ta metoda będzie przetwarzana w tym samym wątku co NSOperation, czy będzie to ten sam wątek (główny), co delegat aplikacji?

Chcę również upewnić się, że kod wewnątrzmyMethod jest wywoływany tylko raz przez mój wątek operacyjny lub główny wątek. Czy mogę po prostu utworzyć instancję NSLock var w moim delegacie aplikacji i zrobić coś takiego:

-(id)myMethod {
    [myLock lock];
    myObject = // Get or create my object to return
    [myLock unlock];
    return myObject;
}

Dzięki za pomoc!

Mikrofon

questionAnswers(3)

yourAnswerToTheQuestion