子类扩展父类委托(delegate),子类工作,但有一个警告!!!
父类:
@protocol ObjADelegate;
@interface ObjA : NSObject
@property (nonatomic, assign) id<ObjADelegate> delegate;
- (void)doSth1;
@end
@protocol ObjADelegate <NSObject>
- (void)seeA;
@end
子类:
#import "ObjA.h"
@protocol ObjBDelegate;
@interface ObjB : ObjA
@property (nonatomic, assign) id<ObjBDelegate,ObjADelegate> delegate;
- (void)dosth2;
@end
@protocol ObjBDelegate <ObjADelegate>
- (void)seeB;
@end
它有效,但对类 objB 的委托(delegate)有警告:自动属性合成不会合成属性“委托(delegate)”;它将由其父类(super class)实现,使用@dynamic 确认意图
如何消除这个警告????
最佳答案
提示在警告消息中。您需要在实现中使用 @dynamic
来告诉编译器属性 setter 和 getter 在别处处理(在本例中,由父类(super class)处理)。
@implementation ObjB
@dynamic delegate;
- (void)dosth2
{
}
@end
关于ios - 子类如何继承父类委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31728831/