2013-07-12 39 views
0

我有兩個類 - CompletionView和PauseView - 每個都有一個關聯的委託。我已經在CompletionDelegate中有一個函數returnHome,並且我需要PauseView委託中的相同功能。我的問題是,我是否必須編寫兩個具有重複功能的函數?或者一個功能可以滿足兩種協議?即CompletionDelegate和PauseDelegate是否都需要定義returnHome?定義相同功能的兩個代表?

+0

爲什麼不能!!!!是的可以做。 – Tirth

回答

4

你可以只定義在外部頭的協議,將其導入這兩個CompletionView和PauseView,創造代表基於該外部協議。

協議不一定需要直接與視圖關聯。

請參考this answer,但如果您的委託方法不特別需要這些類,則可能甚至不需要定義@class和所有這些。您應該能夠在GeneralUseDelegate之類的東西下定義returnHome,並在兩個視圖中定義/使用該委託。

@protocol GeneralUseDelegate 

- (void) returnHome; 

@end 

沒有測試,但無法想象爲什麼這樣不起作用。

+1

這是比接受的答案更好的答案。 – JonahGabriel

+0

是的,我選擇了這個,如果你閱讀我的評論,這就是我所做的。我做了一個ModalDelegate,並將類特定的函數作爲可選項。 –

1

你可以創建CompletionView和PauseView通用超和定義協議,並把委託財產有

+0

我正在做類似的事情。我正在創建一個ModalDelegate,然後他們都會導入它。 –