2011-07-05 27 views
1

我總是有一個協議應該幫助我實現某些方法的印象,所以我的對象會響應某些消息。如果我忘記一個方法或者輸入錯誤,編譯器會告訴我。爲什麼在所有方法都是可選時使用Objective-C協議?

但是有什麼用時,所有的方法都是可選的設置方案的一類?就像在NSSpeechSynthesizerDelegate協議中一樣。編譯器不會提醒我實現某些方法,他也不會告訴我是否以錯誤的方式編寫方法名稱。即使沒有協議,程序也能正常工作。

回答

2

如果您實現自己的委託協議,你會得到編譯器警告,如果你嘗試調用方法,而他們正在申報某處(x可以不選擇迴應...)。

它還與文檔和代碼完成有助於定義的協議。如果您想知道哪些委託方法受支持,您只需查看相應的頭文件(或從其中生成的文檔頁)即可。

當你開始輸入你的類的新方法,Xcode是也足夠聰明,建議從協議的方法簽名,你的類符合。

0

如果您完全不需要它們,您可以省略所有可選方法和的協議Doc說,

但是,一個Objective-C程序不需要使用協議。與類定義和消息表達式不同,它們是可選的。一些Cocoa框架使用它們;有些不。這一切都取決於手頭的任務。

如果你不想要這些協議的幫助,你可以簡單地省略它。

0

因爲你的程序不一定對感興趣,但是一些。您執行的重要部分是,其中

0

在OOP中是常見的程序通過接口(目標C協議接口)不執行,因爲這是關心如何實現一個堅實的軟件架構,在你沒有一個靈活而強大的方式類實現,但只有它匹配某個接口。

:( http://www.google.com/search?hl=en&source=hp&biw=1436&bih=768&q=program+by+interface+not+by+implementation&oq=program+by+inter&aq=2j&aqi=g-j2&aql=&gs_sm=e&gs_upl=849l7924l0l10059l20l16l2l3l3l0l283l1295l7.3.1l11l0一個對谷歌有關的說法搜索)
相關問題