2012-04-13 119 views
2

是有可能實現的協議鏈接?協議鏈接

例如,我定義一個新的協議(ProtocolA),我想,以確保它只能適用於符合ProtocolB對象。因此,像...

@protocol ProtocolA <NSObject<ProtocolB>> 
@end 

問題

是否目標C允許這種行爲?如果不是,那麼我應該注意一種設計模式來獲得類似的效果?

回答

4

代替使用內切協議(這是不正確的格式)的,簡單地用逗號每個單獨的協議分開像這樣:

@protocol ProtocolA <NSObject, ProtocolB> 
@end 

這是完全合法的。實際上,這幾行聲明瞭幾百個UIKit協議。

+0

感謝您的答覆。我實際上昨晚試了這個,但我遇到了一些構建錯誤(22確切地說是:P)。 不過,我覺得有些奇怪,你將能夠使用您所提供的語法(即NSObject的是一個實際的類,而ProtocolB是用戶定義的協議)。 我會盡力在今天晚些時候再次拍攝這種方法。 – dpalmajr 2012-04-13 13:18:41

+0

這是一個鮮爲人知的事實,NSObject也是一個協議!你認爲你可以打電話+ alloc? – CodaFi 2012-04-13 15:56:06

+0

你的權利。不知道我是如何錯過的。感謝您的幫助,您的答案取得了訣竅。 – dpalmajr 2012-04-14 02:16:52