我有一个Timer类和一个ManualTimer类,它们都声明一个协议。在Timer.h中,我有这个
@property (nonatomic, weak) id <TimerDelegate> delegate;
在ManualTimer.h中,我有这个
@property (weak, nonatomic) id <ManualTimerDelegate> delegate;
但是xCode给我警告
property type id <ManualTimerDelegate> is incompatible with type id <TimerDelegate> inherited from parent class
确实,this SO问题的答案之一说,子类委托必须与超类兼容,但没有说明我该怎么做。你可以解释吗?
我该如何解决这个问题?
最佳答案
声明ManualTimerDelegate
协议时,请使其符合“超类”协议(TimerDelegate
)。
@protocol ManualTimerDelegate < TimerDelegate >
@end
您的
TimerDelegate
应该是这样的:@protocol TimerDelegate < NSObject >
@end