这是我的JSON数据
[{
"id": 1,
"name":"Soup",
"price1":100,
"price2":10,
},
{
"id": 2,
"name":"Salad",
"price1":100,
"price2":10,
}]
我按如下方式创建了JSONModel
@interface ProductModel : JSONModel
@property (assign, nonatomic) int id;
@property (strong, nonatomic) NSString* name;
@property (assign, nonatomic) float price1;
@property (assign, nonatomic) float price2;
@property (assign, nonatomic) BOOL isOK;
@property (assign, nonatomic) float<Optional> total; // not coming
@end
在viewcontroller中
NSArray* models = [ProductModel arrayOfModelsFromDictionaries:objects];
现在我想要的是
if(isOK)
{
total = price1 + price2;
} else {
total = price1 - price2;
}
是否可以在模型文件中的某处编写此逻辑,而无需在viewcontroller中迭代模型数组并分配 total 的值
答案 0 :(得分:3)
我的建议是,为total
课程中的ProductModel
媒体资源创建一个getter。
-(float) total
{
if(self.isOK)
{
return self.price1 + self.price2;
} else {
return self.price1 - self.price2;
}
}
答案 1 :(得分:2)
在ProductModel
@property (assign, nonatomic, readonly) float total;
并实施
- (float)total
{
return (self.isOK) ? self.price1 + self.price2 : self.price1 - self.price2;
}
然后,您只需使用语法model.total