web-dev-qa-db-ja.com

Objective-Cで非同期操作をロックするためのデザインパターン

私は最初のObjective-Cクラスを書いています。 HTTPSSO認証サービスとの相互作用を担当します。

このプロセスを完了するには、複数のHTTPトランザクションが必要です。クラスは、それ自体のNSURLConnectionDelegateオブジェクトのNSURLConnectionとして機能します。 NSURLConnectionDelegateオブジェクトは非同期で動作します。

別の認証が進行中の場合、認証の試行を禁止する必要があります。私はそれを自分で行う方法を考えていますが、この状況のデザインパターンを知りたいです。

私の既存のアイデアは、インスタンス変数をチェックして、認証が進行中であるかどうかを確認し、進行中の場合は単に別の認証を開始しないことです。ただし、これを呼び出し元のクラスに戻す方法がわかりません。私のメソッドは現在voidを返します。 NSErrorを使用して、別の認証試行が進行中の場合はそれを返す必要がありますか?

1
retrodev

認証方法のセマフォとしてBOOLを使用することにしました。認証がすでに進行中または完了している場合は、NSErrorオブジェクトを返します。

0
retrodev