どちらの種類のオブジェクトも同じように動作しますが、どちらが問題なのかは問題です。
デリゲート型オブジェクトは、別のオブジェクトが実行するアクションに応答します。例えば、UITableViewDelegate
プロトコルは、ユーザがテーブル内の特定の行を選択したときにアクションを実行するための方法を有する(例えば、didSelectRowAtIndexPath
)。
データソースタイプのオブジェクトは、別のオブジェクトにデータを提供します。例えば、UITableViewDataSource
プロトコルは、cellForRowAtIndexPath
およびnumberOfRowsInSection
のような方法を有し、表に何を表示すべきかを指示する。
コンパイルの点で2つの間に大きな違いはありません。単純に、どのオブジェクトがコードのユーザーにとって非常に明確なことをするかを示すコーディングスタイルです。
EDIT:
2番目の質問に答えるために:あなたは、各アラートが異なる応答したい場合は、アラートごとに異なるデリゲートを作成する必要があります。たとえば、アラートの1つが保存確認アラートである場合(ファイルを上書きし、ユーザーが何をしたいかを確認するためにポップアップする場合など)、
@interface SaveConfirmAlertDelegate : NSObject<UIAlertViewDelegate>
@end
SaveConfirmAlertDelegate
の@implementation
には、アラートでユーザーが押したボタンに応じて適切な保存機能を実装します。
アラートビューを作成するときに、デリゲートオブジェクトが何であるべきかを指定します。これはself
である必要はありません。 4つのデリゲートを異なるオブジェクトとして保存し、必要に応じてアラートに設定することができます。
これがクリアされることを希望します。
私の最初の問題を説明してくれてありがとうございます。私は私の質問に例を追加しました。 – RMDan
@RMDan私はあなたの2番目の質問に余分な説明を追加しました。私はビットをクリアすることを願っています。 –
それは完璧な意味を成しています。私は委任についてもっと学ばなければならないが、それは理にかなっている。 – RMDan