我創建了一個BaseRequest類,它具有一個符合BaseParams協議的屬性。 和接下來我創建了一個從BaseRequest繼承的DiagramReqesut類,它有一個類型爲DiagramParam的屬性也符合BaseParams協議。屬性類型''與繼承自''的類型''不兼容''
我認爲這是編譯安全的,但仍Xcode中警告說: 房產類型「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