2015-03-24 42 views
0

我遇到了這種奇怪的情況,我有兩個協議,都有參數必須符合其他協議的方法。聽起來令人困惑,所以繼承人一些代碼:彼此相關的協議方法

@protocol ProtocolB <NSObject> 
@required 

-(void)methodB:(id<ProtocolA>)parameter; 

@end 



@protocol ProtocolA <NSObject> 
@required 

-(void)methodA:(id<ProtocolB>)parameter; 

@end 

編譯器說:「無法找到...的協議聲明」。根據哪個協議先來,它是ProtocolA或ProtocolB。 把它們放在不同的文件似乎並沒有解決這個問題。

任何想法如何在沒有(重大且可能複雜的)重新設計的情況下做到這一點?

回答

5

協議的前向聲明可能會發生。添加@protocol ProtocolA; ProtocolB

+0

謝謝,這就是我正在尋找! – Atomix 2015-03-24 21:35:51