使用以下模型作为示例,在JSONModel中处理多态性的最佳实践是什么?JSONModel iOS和多态性
@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
当GameModel用的{id:1, events:[{point:{x:1, y:1}, timestamp:...}]}
JSON字符串开始JSONModel将使用GameEventModel
而忽略了point
财产。
它会更好用一个通用的GameEventModel
含有type
财产和财产info
...等
@interface GameTouchEventModel : GameEventModel
@property (nonatomic, strong) NSString *type;
@property (nonatomic, strong) NSDictionary *info;
@end
,因此模型可以接受JSON作为{id:1, events:[{ type:"GameTouchEventModel", info:{ point:{x:1, y:1}, timestamp:... } }]}
与此问题方法很难读取代码,并且没有编译器警告/错误等。
有没有办法在JSONModel中使用多态模型?