子类中的委托声明与父类中的委托不兼容

时间:2014-04-27 21:05:23

标签: ios objective-c

我有一个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问题的答案之一说,子类委托必须与超类兼容,但它并没有说我怎么能这样做。你可以解释吗? 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

当您声明ManualTimerDelegate协议时,请使其符合&#34;超类&#34;协议(TimerDelegate)。

@protocol ManualTimerDelegate < TimerDelegate >

@end

您的TimerDelegate应该是这样的:

@protocol TimerDelegate < NSObject >

@end