2011-07-18 13 views
0

私は簡単なテーブルビューアプリケーションを作成しています。私は、テーブルビューを作成しているビューをUITableViewControllerのサブクラスに宣言しました。 UITableViewControllerは、UITableViewDelegateおよびUITableViewDataSourceプロトコルに準拠しています。プロトコルに準拠することのメリットは何ですか?また、スーパークラスの場合はプロトコルを宣言する必要がありますか?

私の質問は、UITableViewControllerのサブクラスでもありますが、これらのプロトコルに準拠していることを述べる必要がありますか?

また、プロトコルに従うことの利点は、サブクラスの後ろに置くことです。私が書いたコードは、ヘッダーに記述されているプロトコルに関係なく、メソッドがそこにあるという条件で提供されています。

UIViewControllerサブクラスにUITableViewを追加しても違いがありますか?

+0

あなたの最後の質問に答えるには:いいえ。 UITableViewController、**または**をサブクラス化するには、UIViewControllerのサブクラス化とUITableViewアウトレットの追加ができます。テーブルビューのデリゲートまたはデータソースプロトコルを実装する場合は、インターフェイスでそれらを宣言する必要があります。 – bshirley

答えて

3

これらのプロトコルに準拠したクラスから継承するため、いいえ、サブクラスに準拠していると述べる必要はありません。

プロトコルに準拠していると言う利点は、一部のデリゲートプロパティで、明示的に準拠していることを明示するクラスのインスタンスが必要になることです。また、実際には、プロトコルに準拠していることを述べることも良い考えです。

+0

そうすることが不可欠ではない場合は、プログラミングの練習が重要です。 –

+0

は本質的に「私はこのグループの方法を実装する」と言っています。明示的にヘッダーに準拠していることを明示せずにプロトコルのメソッドを実装することは、実装するオブジェクトのメソッドを呼び出すことと似ていますが、ヘッダーに宣言しません。だから、あなたはそれが良い習慣だと言うことができると思います。 –

関連する問題