ios - 子类中的委托(delegate)声明与父类中的委托(delegate)不兼容

标签 ios objective-c

我有一个 Timer 类和一个 ManualTimer 类,它们都声明了一个协议(protocol)。在 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 的答案之一所以问题说子类委托(delegate)必须与父类(super class)兼容,但没有说明我该怎么做。你可以解释吗? 我该如何解决这个问题?

最佳答案

当您声明 ManualTimerDelegate 协议(protocol)时,使其符合“父类(super class)”协议(protocol) (TimerDelegate)。

@protocol ManualTimerDelegate < TimerDelegate >

@end

你的 TimerDelegate 应该是这样的:

@protocol TimerDelegate < NSObject >

@end

关于ios - 子类中的委托(delegate)声明与父类中的委托(delegate)不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23328984/

相关文章:

ios - 屏幕比例/大小在 iOS 8 中是正确的,但在同一设备上的 iOS 9 中是错误的

ios - 开发者账号错误: Sorry,此时无法注册。

ios - 调用 swift 中参数 'responder' 缺少参数

ios - UIImageView 无法识别点击手势

objective-c - setStatusBarHidden 在 iOS 9.0 中已弃用

ios - 如何使表格滚动工作 : UIControl within UITableView within UIControl

iphone - iPhone 的加速度计有多精确——是否可以绘制出相对准确的手机位置运动路径?

ios - 无法在 View Controller 之间传递数据

objective-c - #define 宏不接受变量值

ios - 每月每一天的新类实例?