2011-06-28 28 views
0

我在Lynda.com上查看一些關於iphone開發的視頻。不需要在標題中聲明的ios&obj-c方法

這傢伙正在將自定義數據添加到選取器中,但要添加數據,他並未在頭文件中聲明這些方法。他正在檢查他在文檔中需要哪些方法,並在他的控制器類中複製粘貼這些方法聲明。

對於exampe這種方法

-(int) numberOfComponentsInPickerView: (UIPickerView *) pickerView 

爲什麼沒有我們需要聲明的頭文件的方法呢?

如果這些方法與picker類有關,爲什麼我們要在控制器類中聲明它們,而不是在picker IBOutlet實例中簡單地調用它們?

TIA

回答

1

當你在你的頭,你遵循一定的協議聲明,你基本上是說你同意實施該協議中定義的方法。 我敢打賭,他補充說像這樣的標題:

<UIPickerViewDataSource> 

這意味着,他正在實施UIPickerViewDataSource協議。

因此,通過實施UIPickerViewDataSource協議,您意味着這些方法,因此,他們不需要原型。

1

如果這些方法屬於picker類,爲什麼我們在控制器類中聲明它們而不是在picker IBOutlet實例中簡單地調用它們?

你引用不屬於UIPickerView類,而是在UIPickerViewDataSource協議的方法。您的控制器充當選取器的「助手」,因此如果需要弄清楚它應該顯示多少個組件,選取器會調用您的控制器。你通常不會自己調用這個方法。

由於another answer指出,通過聲明實現該協議,該協議的方法被隱式聲明。通過將<UIPickerViewDataSource>添加到您的界面中,您基本上會說「我可以充當picker視圖的數據源,並且我已經準備好要調用協議中聲明的方法的任何picker」。

+0

那麼說。 (因爲我必須達到15個字符,你是應用商店銷售應用背後的人嗎?) – Moshe

+0

如果你指的是[AppSales](https://github.com/omz/AppSales-Mobile),是的。 :) – omz

+0

是的,指的是。順便說一下,當報告延遲時,門戶會顯示一條消息,這在下載時似乎會造成問題。 – Moshe

相關問題