5

NSURLConnectionDelegateのかなり素晴らしいconnection:didReceiveAuthenticationChallenge:デリゲートメソッドをうまく使用しています。涼しい。

ユーザーが認証チャレンジをキャンセルできるようにすることを適切にサポートしたいと思います。したがって、ユーザーに提示するGUIにはキャンセルボタンがあり、問題はそのボタンの背後でどのような動作が発生するかです。

現在、これ[[challenge sender] cancelAuthenticationChallenge:challenge]を実行し、NSURLConnectionDelegateメソッドを実装しましたconnection:didCancelAuthenticationChallenge:。Appleのドキュメントで、このコールバックに関するこのかなりあいまいなメモに気づきました。

iOS5.0より前の非公式プロトコルの一部として利用できます。

は?実際に起動するコールバックメソッドはconnection:didFailWithError:

誰かがここに光を当ててくれませんか?

4

1 に答える 1

4

iOS 5.0 より前の非公式プロトコルの一部として利用できます。

これは、問題のデリゲート メソッドが正式なプロトコル、つまり @protocol ディレクティブを使用して宣言されたプロトコルの一部ではなかったことを意味します。通常、非公式プロトコルのメソッドは、それらを呼び出すクラスとともに文書化されます。

実際に起動するコールバック メソッドは、connection:didFailWithError: です。

iOS 5.0 より前の非公式プロトコルの一部であることについては、 と の両方-connection:didCancelAuthenticationChallenge:に同じ注意事項があります。-connection:didFailWithError:接続がキャンセルされたのではなく、データの読み込みに失敗しているようです。次のように呼び出してチャレンジをキャンセルすると、おそらく前のメッセージが表示されます。

[[challenge sender] cancelAuthenticationChallenge:challenge];

接続のキャンセルで説明されているように。

于 2012-05-04T21:02:13.783 に答える