首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONModel -使用同一JSONModel中的其他属性分配JSONModel属性的值

JSONModel -使用同一JSONModel中的其他属性分配JSONModel属性的值
EN

Stack Overflow用户
提问于 2016-09-03 08:23:12
回答 2查看 578关注 0票数 3

这是我的JSON数据

代码语言:javascript
复制
[{
    "id": 1,
    "name":"Soup",
    "price1":100,
    "price2":10,
},
{
    "id": 2,
    "name":"Salad",
    "price1":100,
    "price2":10,
}]

我创建JSONModel的步骤如下

代码语言:javascript
复制
@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

在视图控制器中

代码语言:javascript
复制
NSArray* models = [ProductModel arrayOfModelsFromDictionaries:objects];

现在我想要的是

代码语言:javascript
复制
if(isOK)
{
   total = price1 + price2;
} else {
   total = price1 - price2;
}

是否可以在模型文件中写入此逻辑,而不必在视图控制器中迭代模型数组并分配的值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-06 12:31:08

我的建议是在total类中为ProductModel属性创建一个getter。

代码语言:javascript
复制
-(float) total
{
   if(self.isOK)
   {
      return self.price1 + self.price2;
   } else {
      return self.price1 - self.price2;
   }
}
票数 3
EN

Stack Overflow用户

发布于 2016-09-06 12:35:18

  • ProductModel中声明只读属性 @属性(赋值、非原子、只读)浮动总数;
  • 并加以实施
  • (浮动)总{返回(self.isOK)?self.price1 + self.price2 : self.price1 - self.price2;}

然后,您可以简单地使用语法model.total读取该值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39304830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档