オブジェクトを返すメソッドを含むメイン アプリケーション デリゲートがあります。このアプリケーション デリゲートは、メイン スレッドで実行されます。
別のスレッドで実行される NSOperation もあります。アプリのデリゲート メソッドをメイン スレッドで呼び出せるようにしたいだけでなく、NSOperation スレッドから呼び出して、返されるオブジェクトを取得する必要もあります。私の最初の質問は、これを他のスレッドから呼び出すかどうかです...
id newObject = [[[UIApplication sharedApplication] delegate] myMethod];
...そのメソッドは NSOperation と同じスレッドで処理されますか、それともアプリケーション デリゲートと同じスレッド (メイン) になりますか?
myMethod
また、内部のコードが、操作スレッドまたはメイン スレッドによって一度に 1 回だけ呼び出されるようにしたいと考えています。アプリケーションデリゲートで NSLock インスタンス変数を作成して、次のようなことを行うことはできますか?
-(id)myMethod {
[myLock lock];
myObject = // Get or create my object to return
[myLock unlock];
return myObject;
}
ご協力いただきありがとうございます!
マイク