文档章节

数据赋值

奋斗的青春年华
 奋斗的青春年华
发布于 2016/11/10 13:37
字数 436
阅读 5
收藏 0

1 在网络请求中,获得的数据对控件进行赋值时,一定在数据的set方法中赋值,否则极易造成赋值失败,导致控件的相应地数据为空。当数据是通过网络请求得到的,赋值时,出现控件的相应数据属性为空时,很有可能是赋值时,控件还没初始化创建出来,导致赋值(=)的右侧有值,而= 的左侧为空(即控件的数据属性为空)。

2 在使用数据模型时,诸如大的模型中有一个用数组存放的字典小模型时,即存在嵌套模型时,由于在对大的模型(即小模型的上一级模型赋值时,已经对小模型进行了初始化小模型,因此在控制器或view中不能再次初始化小模型,否则将导致数据错误,导致小模型数据为空,界面无数据展示。记住,一旦模型在模型类中已经初始化,那么在控制器或view中一定不能再次赋值初始化。经典案例如下:

#import "HRBaseModel.h"

@interface ActivityRecommentModel : HRBaseModel

@property (nonatomic,assign) NSInteger ArticleID;    //文章ID

@property (nonatomic,copy) NSString *Title;    //文章标题

@property (nonatomic,copy) NSString *Image;    //文章图片URL

@property (nonatomic,copy) NSString *Products;//关联商品

@property (nonatomic,strong) NSArray *ProductList;//关联商品的LIST

@end

 

#import "ActivityRecommentModel.h"

#import "ActivityRecDetProductModel.h"

 

@implementation ActivityRecommentModel

 

- (instancetype)initWithDictionary:(NSDictionary *)dictionary

{

    self = [super initWithDictionary:dictionary];

    if (self) {

        [self setValuesForKeysWithDictionary:dictionary];

        NSArray *productList = dictionary[@"ProductList"];

        NSMutableArray *muArr = [NSMutableArray array];

        for (NSDictionary *dict in productList) {

//在模型中已经初始化了ActivityRecDetProductModel,因此在控制器或view中一定不能再次初始化,否则错误,模型初始化只能进行一次

            ActivityRecDetProductModel *productModel = [[ActivityRecDetProductModel alloc] initWithDictionary:dict];

            [muArr addObject:productModel];

        }

        _ProductList = muArr;

    }

    return self;

}

 

@end

 

© 著作权归作者所有

共有 人打赏支持
奋斗的青春年华
粉丝 1
博文 172
码字总数 103712
作品 0
浦东
C++ 构造函数初始化列表

一、我的问题是关于初始化C++类成员的。我见过许多这样的代码: CSomeClass::CSomeClass() { x=0; y=1; } 而在别的什么地方则写成下面的样子: CSomeClass::CSomeClass() : x(0), y(1) { } ...

geek_loser
2016/10/18
41
0
【old】博客还是需要写的哦-赋值、拷贝

1)预备知识 1.1)预备知识1--python的变量及其存储 ·python中,变量保存的是对象的引用,我们称之为"引用语义".·采用这种语义,变量需要的内存大小一致,因为变量只是保存了一个引用. 1.2)各基本...

Mx孔小发
2017/12/24
0
0
c++中拷贝构造函数&赋值操作符的理解

18/2/6 将具体例子改为Ch09Point类(作为指针变量使用),Ch09CopyConstructor类(作为父类,包含Ch09Point指针变量),Ch09DeprivedClass类(作为子类)。通过这三个类的相互关系,介绍c++...

乔三爷
2016/06/10
70
0
ABAP开发基础知识:7)数据类型的转换

在其它编程语言中,数据之间的转换是非常普遍的。当然,在ABAP编程中也同样涉及到数据之间的相互转换,在不同的数据对象之间赋值,系统会自动进行类型转换,转换过程遵照固定规则进行,例如将...

ken_ngai
2012/03/28
0
0
代码创建控件注意事项

1 用代码创建子控件时,一般实例化控件都是在init方法中创建,当然如果控件没有复杂的逻辑也可以直接在数据赋值的方法中创建并赋值,数据赋值在数据set方法中设置 2 设定的约束需要根据不同的...

奋斗的青春年华
2016/08/24
2
0

没有更多内容

加载失败,请刷新页面

加载更多

兄弟连区块链入门教程eth源码分析core-vm源码分析(二)

  兄弟连区块链入门教程eth源码分析core-vm源码分析(二),合约创建 Create 会创建一个新的合约。        // Create creates a new contract using code as deployment cod...

兄弟连区块链入门教程
22分钟前
3
0
python打造特别火的一个小游戏,16行代码实现3D撞球小游戏!

以下是制作上面炫酷动画所需的全部代码: 我们需要三组刚体(当您在Blender的对象上打开一个刚体的属性时,Blender将模拟与其它刚体的碰撞): 1.平面 第2行代码创建了一个简单的平面,立方体...

糖宝lsh
25分钟前
1
0
SQL语言分类

SQL(Structure Query Language)语言是数据库的核心语言。 SQL语言共分为四大类: 数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL。 数据定义语言DDL 数据定义语言DDL...

阿dai
27分钟前
1
0
UICollectionView的headerView、footerView使用以及与UITableView加载headerView、footerView的区别

前序 最近在一家公司实习,学习一些ios的知识。因为以前没有使用过UICollectionView,所以带我的导师让我仿照公司APP中的一个UICollectionView自己做一个练练手。期间遇到了一些问题:我们知...

壹峰
29分钟前
2
0
IMP-00017: following statement failed with ORACLE error 20005:

/*报错信息Export file created by EXPORT:V11.02.00 via conventional pathimport done in AL32UTF8 character set and AL16UTF16 NCHAR character setexport client uses ZHS16GBK char......

fengzhi714
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部