2

私は、Stephen G. Kochan による「Programming in Objective C」を読んでいます。第 11 章では、カテゴリ、プロトコル、委任、非公式のプロトコルについて少し触れています。

今、彼はそれらのすべてについて少し話しましたが、それは私をさらに混乱させました...委任はobj cの最も重要な主題の1つであり、それはプロトコルに沿っていることを知っています.

助けてください、それは私にとって重要なので、台無しにしないでください。tnx

4

1 に答える 1

4

委任について説明します。知っていればとても簡単ですが、理解するには時間がかかります。

Calculator計算を実行するCalculatorScreenクラスと、計算結果をユーザーに提示するために使用されるクラスの 2 つのクラスがあるとします。Calculator クラスは、計算の実行が終了したときに CalculatorScreen に通知して、後者が UI を更新できるようにする必要があります。

プロトコルは、指定された名前に関連付けられた一連のメソッドを定義する方法を提供します。Calculator クラスの CalculatorDelegate と呼ばれるプロトコルで定義されたいくつかのメソッドを持つことができますが、メソッドの実装は別の場所で定義されています。

プロトコルを定義するクラス (この場合は Calculator) は、デリゲート(プロトコルに準拠するオブジェクト- この場合は CalculatorScreen) にメソッドを実装するよう指示できます。電卓クラスは加算計算を終了し、デリゲート (画面) に更新を指示する場合があります。分かってるね?

申し訳ありませんが、私が書いているときに、説明するのが難しいことに気付き、試みたすべての著者に共感しました!

iOS の例: iPad のディスプレイにテーブルを設定するときは、UITableView クラスを使用します。しかし、そのクラスは、テーブルのタイトルが何か、セクションと行がいくつあるのか、何を入力するのかを知りません。そのため、UITableViewDataSource および UITableViewDelegate と呼ばれるプロトコルを定義することで、その責任を委任します。UITableView が行数などの情報を知る必要がある場合、デリゲート (独自のクラス) で適切なメソッドを呼び出します。デリゲート クラスには、プロトコルで定義されたメソッドの実装が含まれています。

あなたの質問に答えるために、私は本を少し放り出し、あなたがこれまでに学んだことをダミーアプリでコーディングし始めます! 学ぶための最良の方法は、実行することです(少なくとも私にとっては)。

于 2013-02-19T22:54:20.677 に答える