相互依赖的协议方法
Protocol methods depending on each other
我 运行 遇到了这种奇怪的情况,我有两个协议,并且都有方法的参数必须符合另一个协议。听起来很混乱,所以这里是一些代码:
@protocol ProtocolB <NSObject>
@required
-(void)methodB:(id<ProtocolA>)parameter;
@end
@protocol ProtocolA <NSObject>
@required
-(void)methodA:(id<ProtocolB>)parameter;
@end
编译器说:"Cannot find protocol declaration for ..."。根据先出现的协议,它是 ProtocolA 或 ProtocolB。
将它们放在不同的文件中似乎并不能解决这个问题。
关于如何在不进行(主要且可能复杂的)重新设计的情况下做到这一点的任何想法?
协议的前向声明可以。添加@protocol ProtocolA;在 ProtocolB
之前
我 运行 遇到了这种奇怪的情况,我有两个协议,并且都有方法的参数必须符合另一个协议。听起来很混乱,所以这里是一些代码:
@protocol ProtocolB <NSObject>
@required
-(void)methodB:(id<ProtocolA>)parameter;
@end
@protocol ProtocolA <NSObject>
@required
-(void)methodA:(id<ProtocolB>)parameter;
@end
编译器说:"Cannot find protocol declaration for ..."。根据先出现的协议,它是 ProtocolA 或 ProtocolB。 将它们放在不同的文件中似乎并不能解决这个问题。
关于如何在不进行(主要且可能复杂的)重新设计的情况下做到这一点的任何想法?
协议的前向声明可以。添加@protocol ProtocolA;在 ProtocolB
之前