メインスレッドで NSProgressIndicator を使用して、メソッド全体を実行しながら進行状況を更新しています。別のクラス ファイルからオブジェクトを呼び出して、そのオブジェクトがメイン スレッドの値に戻るのを待つと、NSProgressIndicator が消えることに気付きます。これは、他のオブジェクトから戻り値を取得するまでメインスレッドがブロックされているためだと理解しています。
したがって、私の質問は、メインスレッドでUIをブロックせずに更新し、他のオブジェクトをバックグラウンドで実行して、必要に応じてメインスレッドに値を返すための推奨される方法は何ですか. ブロックの使い方は知っていますが、ブロック操作で値を返すことはできません。私が必要としているのは、この疑似コードを支援するものです:
-(IBAction) main {
//Update progress indicator UI to show progress
//perform an call to another object from another class.
// wait till i get its return value.
//Update progress indicator UI to show progress
// Use this return value to do something.
//Update progress indicator UI to show progress
}
他のオブジェクトへの呼び出しが行われると、メインスレッドがブロックされているため、私が持っている決定的な NSProgressIndicator が完全に消えることに気付きました。ありがとう。