-2

Objective C のクラス宣言構文を理解するため、またはより具体的にするために、助けが必要です

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>

UITableViewDataSource、UITableViewDelegate とはどういう意味ですか

私の理解では、クラスがインスタンス化されるときにこれら 2 つのオブジェクトを受け取るということです。間違っている場合は修正してください。

4

3 に答える 3

2

UITableViewDataSourceUITableViewDelegateは 2 つのプロトコルであり、クラス (またはオブジェクト) ではありません。

< >クラスを宣言するとき、ブラケット構文を使用して、クラスが実装するプロトコルをいくつでも指定できます。

プロトコルは、必須またはオプションのメソッドのリストです。クラス宣言にプロトコルを追加しても、そのプロトコルのメソッドは実際には実装または宣言されません。あなたはそれを自分でしなければなりません。ただし、必要なプロトコル メソッドを実装していない場合は、コンパイラの警告が表示されます。

于 2012-09-27T18:06:11.687 に答える
1

クラスを宣言するとき、<> 構文を使用して、クラスが準拠する必要があるプロトコルのリストを指定できます。

プロトコルは、クラスが実装する必要があるメソッドの「セット」です (オプションのメソッドも指定できます)。それらにはメソッド宣言しかありませんが、プログラマーはそれらをクラスに実装する必要があります。プロトコルは委任パターンの中心であるため、Objective-C では非常に重要です。

この特定のケースでは、UITableViewDelegate は、UITableViews を処理するオブジェクトが準拠する必要があるプロトコルです。テーブル ビュー デリゲートは、高さ、アクセサリなどの設定など、テーブルとそのセルの制御を担当します。

UItableViewDataSource は、テーブル ビューにデータを提供するオブジェクトが準拠する必要があるプロトコルです。このプロトコルに準拠するオブジェクトは、テーブル ビューに表示されるデータを返す責任があります。

必要なときにプロトコルを使用しないと、遅かれ早かれアプリがクラッシュする警告が作成される可能性があります。

于 2012-09-27T18:05:54.257 に答える
0

UITableViewDataSource と UITableViewDelegate はプロトコルです。プロトコルが何であるかを理解するには、これを参照してください。プロトコルは Java のインターフェースに似ています。

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>

この行は、「UITableViewController」から継承し、UITableViewDataSource と UITableViewDelegate の 2 つのプロトコルを採用するクラス「SomeViewController」を宣言することを意味します。

于 2012-09-27T18:09:41.670 に答える