다음 모델을 예제로 사용하면 JSONModel 내에서 다형성을 처리하는 가장 좋은 방법은 무엇입니까? GameModel이 {id:1, events:[{point:{x:1, y:1}, timestamp:...}]}
JSONModel iOS 및 다형성
의 JSON 문자열로 시작되면
@interface GameModel : JSONModel
@property (nonatomic, assign) long id;
@property (nonatomic, assign) NSArray<GameEventModel> *events;
/*
...
*/
@end
@interface GameEventModel : JSONModel
@property (nonatomic, assign) long long timestamp;
/*
...
*/
@end
@interface GameTouchEventModel : GameEventModel
@property (nonatomic, assign) CGPoint point;
/*
...
*/
@end
는 JSONModel는 GameEventModel
를 사용하고 point
속성을 무시합니다.
는 {id:1, events:[{ type:"GameTouchEventModel", info:{ point:{x:1, y:1}, timestamp:... } }]}
이의 문제로 JSON을 받아 들일 수와 같은 type
재산 및 info
속성을 포함하는 일반적인 GameEventModel
...
@interface GameTouchEventModel : GameEventModel
@property (nonatomic, strong) NSString *type;
@property (nonatomic, strong) NSDictionary *info;
@end
그러므로 모델을 사용하는 것이 좋을 것이다 접근법은 코드를 읽는 것이 어렵고 컴파일러의 경고/오류도 없습니다.
JSONModel에서 다형성 모델을 사용할 방법이 없습니까?