Multithreading-Frage in Objective-C 2.0

Ich habe meinen Hauptanwendungsdelegaten, der eine Methode enthält, die ein Objekt zurückgibt. Dieser Anwendungsdelegat wird auf dem Hauptthread ausgeführt.

Ich habe auch eine NSOperation, die auf einem anderen Thread ausgeführt wird. Ich möchte nicht nur manchmal meine App-Delegate-Methode in meinem Haupt-Thread aufrufen können, sondern muss sie auch in meinem NSOperation-Thread aufrufen, um das zurückgegebene Objekt abzurufen. Meine erste Frage ist, ob ich das von meinem anderen Thread aus anrufe ...

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

... wird diese Methode auf demselben Thread wie die NSOperation verarbeitet oder auf demselben Thread (Haupt) wie der Anwendungsdelegierte?

Ich möchte auch sicherstellen, dass der Code darin enthalten istmyMethod wird jeweils nur einmal von meinem Operationsthread oder meinem Hauptthread aufgerufen. Kann ich einfach eine NSLock-Instanzvariable in meinem Anwendungsdelegierten erstellen und Folgendes tun:

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

Danke für Ihre Hilfe!

Mike

Antworten auf die Frage(3)

Ihre Antwort auf die Frage