5

私は iOS プログラミングの委任とデータ ソースについて学習してきましたが、質問する必要があります。委任プロトコルではなくデータ ソース プロトコルを作成するときに行う必要がある違いはありますか?

また、1 つのデリゲートで多くの同じオブジェクトのデリゲートを実装するにはどうすればよいですか? 多くの固有のカスタム アラートを含む 1 つのオブジェクトの例。

- 編集 -

2 番目の部分の例:

それぞれ異なるボタンを持つ 4 つの異なるアラートを持つ 1 つのオブジェクト。オブジェクトは、アラートのデリゲートになることによって、各ボタンがどのように機能するかを指示する必要があるためです。各アラートを決定するデリゲート メソッドをどのように設定しますか?

4

1 に答える 1

14

どちらのタイプのオブジェクトも多かれ少なかれ同じように動作します。それはそれらが何をするかという問題です。

デリゲート型オブジェクトは、別のオブジェクトが実行するアクションに応答します。たとえば、プロトコルには、ユーザーがテーブル内の特定の行を選択したときにアクションを実行UITableViewDelegateするなどのメソッドがあります。didSelectRowAtIndexPath

一方、データソースタイプのオブジェクトは別のオブジェクトにデータを提供します。たとえば、UITableViewDataSourceプロトコルには、テーブルに何を表示するかなどcellForRowAtIndexPathのメソッドがあります。numberOfRowsInSection

コンパイルに関しては、この2つに大きな違いはありません。これは、コードのユーザーにとってどのオブジェクトが何を実行するかを明確にするためのコーディングスタイルにすぎません。

編集:

2番目の質問に答えるには、各アラートの応答を変えたい場合は、アラートごとに異なるデリゲートを作成する必要があります。たとえば、アラートの1つが保存確認アラートである場合(おそらくファイルを上書きしようとしていて、ユーザーが何をしたいかを確認するためにポップアップ表示されます)、次のようなオブジェクトがあります。

@interface SaveConfirmAlertDelegate : NSObject<UIAlertViewDelegate>
@end

また、ユーザーがアラートで押したボタンに応じて、適切な保存機能を実装します @implementationSaveConfirmAlertDelegate

アラートビューを作成するときは、デリゲートオブジェクトを指定します。これは、である必要はありませんself。4人の代理人を異なるオブジェクトとして保存し、必要に応じてアラートに設定することができます。

これで問題が解決することを願っています

于 2012-06-19T19:04:07.947 に答える