2011-06-28 9 views
0

私はLynda.comのビデオをiphoneの開発についてチェックしていました。ヘッダに宣言が必要ないios&obj-cメソッド

男は、カスタムデータをピッカーに追加していましたが、ヘッダーファイルにメソッドを宣言していないデータを追加しました。彼はドキュメンテーション上で必要なメソッドをチェックし、コントローラクラスのメソッド宣言を貼り付けていました。 exampeこの方法

-(int) numberOfComponentsInPickerView: (UIPickerView *) pickerView 

なぜ我々はヘッダファイルにこれらのメソッドを宣言する必要はありませんについては

これらのメソッドがピッカークラスに関係する場合、単にピッカーIBOutletインスタンスで呼び出すのではなく、コントローラクラスで宣言するのはなぜですか? TIA

答えて

1

あなたが特定のプロトコルに従ってください、あなたのヘッダーで宣言

は、あなたは基本的にあなたがプロトコルで定義されたメソッドを実装することに同意すると言っています。 私は彼がヘッダにこのような何かを追加賭ける:

<UIPickerViewDataSource> 

彼はUIPickerViewDataSourceプロトコルを実装していることを意味します。

したがって、UIPickerViewDataSourceプロトコルを実装することで、これらのメソッドを暗示しているため、プロトタイプを作成する必要はありません。

1

これらのメソッドがピッカークラスに関係する場合、単にピッカーIBOutletインスタンスで呼び出すのではなく、コントローラクラスで宣言するのはなぜですか?

引用した方法はUIPickerViewクラスではなく、UIPickerViewDataSourceプロトコルに属しています。あなたのコントローラは、ピッカーのための "ヘルパー"として機能するので、ピッカーは表示する必要があるコンポーネントの数を把握する必要がある場合、コントローラを呼び出しています。あなたは通常、このメソッドを自分で呼び出すことはありません。

another answerとして、プロトコルを実装すると宣言することによって、そのプロトコルのメソッドが暗黙的に宣言されます。 <UIPickerViewDataSource>をインターフェイスに追加することで、基本的には「ピッカービューのデータソースとして機能し、プロトコルで宣言されているメソッドを呼び出そうとしている任意のピッカーに対応できる」と言います。

+0

(私は15文字に達しなければならないので、あなたはアプリストアの販売アプリの背後にいる男ですか?) – Moshe

+0

[AppSales](https://github.com/omz/AppSales-Mobile)を指しているなら、はい。 :) – omz

+0

うん、それを参照していた。ところで、レポートが遅れると、ポータルはダウンロード時に問題を起こすようなメッセージを表示します。 – Moshe

関連する問題