1

代理人を指定するクラスについて疑問があります。

デリゲートオブジェクトがプロトコルを実装する必要がある場合もあれば、そうでない場合もあります。たとえば、を表示する場合はUIAlertView、likeselfを指定して作成しますdelegate。次に、mustを呼び出しているクラスがプロトコルUIAlertViewを実装する必要があります。UIAlertViewDelegate

NSUrlConnectionメッセージのように他のクラスを作成する場合は、接続の進行に応じてconnectionWithRequest:delegate:送信されたデリゲートメッセージを受信するデリゲートを指定しますがNSUrlConnection、デリゲートとして指定されたオブジェクトはプロトコルを実装する必要はありません。

私は何かが足りないのですか?プロトコルをいつ実装する必要があるかをどのように理解しますか?のようにAPIリファレンスから常に明らかUIAlertViewDelegateですか?

UIAlertView参照はインスタンスメソッドのみを示し、プロトコルを実装する必要があることを示し、実装するUIAlertViewDelegateプロトコルNSUrlConnectionについては説明していませんが、デリゲートメソッドセクションがあることに気付きました。

デリゲートメソッドを使用せずにプロトコルを使用してNSUrlConnection、クラスのように定義できた可能性があります。UIAlertViewNSUrlConnectionDelegate

それとも私はポイントを逃していますか?同様の目的で2つの異なる方法があるように思えますが、おそらく私は間違っています。私はかなり明確になっていることを願っています、私はこのようなものの背後にある理論的根拠を完全に理解したいと思います。

4

1 に答える 1

0

NSURLConnection自体がデリゲートメソッドを実装し、これらのイベントにいくつかのデフォルトの動作を提供します。

UIAlertViewは、デフォルトでは、これらのイベントを処理しません。また、デリゲートを作成して処理をカスタマイズできるようにします。

違いは、デフォルトの動作が必要かどうかです。

于 2011-09-03T09:07:12.943 に答える