2009-07-15 74 views
1

我經歷了這個教程Your First iPhone Application,它工作得很好。我的問題是關於教程中的行如下:UIVewController的UITextFieldDelegate協議

視圖控制器也將是文本字段的委託;因此,它必須採用UITextFieldDelegate協議。要指定某個類採用協議,請在該接口中將該協議的名稱添加到尖括號(<>)中,類名繼承您的類。

如果我從視圖控制器中刪除該協議,該方法仍被調用(收到消息)並且鍵盤被解除。我注意到UITextFieldDelegate協議的所有方法都是可選的。如果是這樣的話,爲什麼要聲明視圖控制器遵守協議?我錯過了什麼? :-)

回答

5

因爲程序員喜歡把事情組織起來。即使協議的所有方法都是可選的,但如果它將用作委託,那麼正式聲明您的類實現了該協議仍然是一種很好的形式。委託類還可能要求您的類實現協議 - 這意味着如果您實現方法但不聲明您實現協議,則會收到編譯警告。

+0

是否有編譯器開關或指令,讓我看到的情況下,我已經將UITextField與View Controller鏈接,但尚未聲明View Control遵循UITextFieldDelegate協議? – 2009-07-15 18:15:31