协议方法相互依赖

时间:2015-03-24 21:22:07

标签: objective-c protocols

我遇到了这种奇怪的情况,我有两个协议,并且都有方法,参数必须符合其他协议。听起来令人困惑,所以有些代码:

@protocol ProtocolB <NSObject>
@required

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

@end



@protocol ProtocolA <NSObject>
@required

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

@end

编译器说:“找不到......的协议声明”。根据首先使用的协议,它可以是ProtocolA或ProtocolB。 将它们放在不同的文件中似乎并没有解决这个问题。

如果没有(重大且可能复杂的)重新设计,我怎么能做到这一点?

1 个答案:

答案 0 :(得分:5)

协议的前向声明可能会这样做。添加@protocol协议;在ProtocolS之前