我在将 JSON 数组转换为模型时遇到了一个问题。我正在使用JSONModel
图书馆。
@protocol PTTemplateModel <NSObject>
@end
@protocol PTProfileTemplateModel <PTTemplateModel>
@end
@protocol PTCategoryTemplateModel <PTTemplateModel>
@end
@interface PTTemplateModel : JSONModel
@property (nonatomic, assign) TemplateType type;
@property (nonatomic, copy) NSString* templateID;
@end
@interface PTProfileTemplateModel : PTTemplateModel
@property (nonatomic, copy) NSString* logoURL;
@property (nonatomic, copy) NSString* title;
@end
@interface PTCategoryTemplateModel : PTTemplateModel
@property (nonatomic, strong) NSString* category;
@end
@interface PTModel : JSONModel
@property (nonatomic, copy) NSString* title;
@property (nonatomic, strong) NSArray< PTTemplateModel>* templates; // PTTemplateModel
这里templates
数组可以同时具有PTProfileTemplateModel
和PTCategoryTemplateModel
。
JSON 输入:
{"title":"Core","templates":[{"type":0,"templateID":"","logoURL":"", "title":"data"},{"type":1,"templateID":"","category":"DB"}]}
我需要的是根据type
我必须得到CategoryTemplate
或ProfileTemplate
。但在转换后,我得到的只是PTTemplateModel
类型。
我知道我已将协议类型指定为PTTemplateModel
. 但是如何根据给定的数据获得不同类型的模型。
我试过了:
@property (nonatomic, strong) NSArray< PTTemplateModel>* templates;
@property (nonatomic, strong) NSArray<PTProfileTemplateModel, PTCategoryTemplateModel>* templates;
@property (nonatomic, strong) NSArray< PTTemplateModel , PTProfileTemplateModel, PTCategoryTemplateModel>* templates;
它们都不起作用。
有什么建议么?