我有一个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

08-05 22:28