에서 상속되었습니다. BaseRequest 클래스를 만들었으며 BaseParams 프로토콜을 준수하는 속성을가집니다. 다음으로 BaseRequest에서 상속받은 DiagramReqesut 클래스를 만들고 DiagramParam이 BaseParams 프로토콜을 준수하는 유형의 속성을가집니다.속성 유형 ''이 (가) 유형과 호환되지 않습니다 '' '
나는 그것을 컴파일 안전하다고 생각하지만, 엑스 코드는 여전히 경고 : 'DiagramParams는 *'유형 'ID'와 호환되지 않는 'BaseRequest'에서 상속 대지 종류
내가 왜 궁금해.
간체 데모는 여기에 있습니다 :
BaseRequest.h
@interface BaseRequest
@property (nonatomic,retain) id<BaseParams> params;
@end
@protocol BaseParams <NSObject>
- (NSMutableDictionary *)getParamsDict;
@end
에게 DiagramRequest.h
@interface DiagramRequest : BaseRequest
//warning: Property type 'DiagramParams *' is incompatible with type 'id<BaseParams>' inherited from 'BaseRequest'
@property (nonatomic,retain) DiagramParams *params;
@end
@interface DiagramParams : NSObject <BaseParams>
@property (nonatomic) int id;
@property (nonatomic,retain) NSString *city;
- (NSMutableDictionary *)getParamsDict;
@end
작동합니다. – Feather