私は最初のObjective-Cクラスを書いています。 HTTPSSO認証サービスとの相互作用を担当します。
このプロセスを完了するには、複数のHTTPトランザクションが必要です。クラスは、それ自体のNSURLConnectionDelegate
オブジェクトのNSURLConnection
として機能します。 NSURLConnectionDelegate
オブジェクトは非同期で動作します。
別の認証が進行中の場合、認証の試行を禁止する必要があります。私はそれを自分で行う方法を考えていますが、この状況のデザインパターンを知りたいです。
私の既存のアイデアは、インスタンス変数をチェックして、認証が進行中であるかどうかを確認し、進行中の場合は単に別の認証を開始しないことです。ただし、これを呼び出し元のクラスに戻す方法がわかりません。私のメソッドは現在voidを返します。 NSErrorを使用して、別の認証試行が進行中の場合はそれを返す必要がありますか?
認証方法のセマフォとしてBOOLを使用することにしました。認証がすでに進行中または完了している場合は、NSErrorオブジェクトを返します。