文档章节

数据赋值

奋斗的青春年华
 奋斗的青春年华
发布于 2016/11/10 13:37
字数 436
阅读 5
收藏 0
点赞 0
评论 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
博文 166
码字总数 101761
作品 0
浦东
C++ 构造函数初始化列表

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

geek_loser ⋅ 2016/10/18 ⋅ 0

【old】博客还是需要写的哦-赋值、拷贝

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

Mx孔小发 ⋅ 2017/12/24 ⋅ 0

代码创建控件注意事项

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

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

ABAP开发基础知识:7)数据类型的转换

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

ken_ngai ⋅ 2012/03/28 ⋅ 0

c++中拷贝构造函数&赋值操作符的理解

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

乔三爷 ⋅ 2016/06/10 ⋅ 0

【Linux】shell编程之给变量赋值的五种方法

1. Shell中的变量类型 Shell中的变量可以分为环境变量、位置变量、预定义的特殊变量以及用户自定义变量、 <!--[if !supportLists]-->2. <!--[endif]-->环境变量 Shell中的环境变量是一类S...

少年追梦 ⋅ 2015/05/15 ⋅ 1

SQL Server Transact-SQL 编程

T-SQL语句用于管理SQL Server数据库引擎实例,创建和管理数据库对象,以及查询、插入、修改和删除数据。 Ø 变量 1、 局部变量(Local Variable) 局部变量是用户可以自定义的变量,它的作用...

ibm_hoojo ⋅ 2011/07/15 ⋅ 0

jquery mobile changepage的问题。

我动态的从服务器拿数据,然后赋值到shoperdetail页面。第一次能把数据赋值进去,返回后,再哪数据,赋值就不行了,发现第二次,getElementById("shoperdetail1")是空的; 请问这是什么原因...

不舞 ⋅ 2012/08/01 ⋅ 1

laravel批量赋值

除此之外还可以使用create方法插入数据,由于该方法中用到了批量赋值(Mass Assignment),所以我们需要在模型类中设置$fillable属性或者$guarded属性,以表明哪些属性可以通过该方法设置,哪...

徐耀湘91 ⋅ 2016/10/29 ⋅ 0

KVC在定义Model类中的妙用

@我们应用程序使用MVC架构的话,对于处理数据类,我们会单独的定义Model类,在里面为要展示的属性进行初始化赋值,一般采用的方法是通过定义对应的属性,挨个赋值.现在我要介绍的就是通过KVC,key...

sea_god ⋅ 2015/11/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Kubeflow实战系列:利用TFJob导出分布式TensorFlow模型

介绍 本系列将介绍如何在阿里云容器服务上运行Kubeflow, 本文介绍如何使用TfJob导出分布式模型训练模型。 第一篇:阿里云上使用JupyterHub 第二篇:阿里云上小试TFJob 第三篇:利用TFJob运行...

全部原谅 ⋅ 8分钟前 ⋅ 0

007. 深入JVM学习—老年代

老年代空间的主要目的是用于存储由Eden发送来的对象,一般在经历好几次“Minor GC”还会保存下来的对象,才会被复制到老年代,这样就可以存放更多的对象,同时在老年代中执行GC的次数也相对较...

影狼 ⋅ 9分钟前 ⋅ 0

常见的一些C#开源框架或者开源项目

原:https://blog.csdn.net/qq_27825451/article/details/70666044 Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更......

whoisliang ⋅ 9分钟前 ⋅ 0

设计模式基本原理

刚开始接触编程这行的时候看过设计模式,当时感觉学这些模式没有太大的用处,当时也看不太懂。但是随着慢慢接触这一行,经过一段时间的编程以后,再回过头来看设计模式,发现设计模式的确是太...

王子城 ⋅ 13分钟前 ⋅ 0

阿里云全面支持IPv6!一文揽尽4位大咖精彩演讲

摘要: 自从去年11月以来,阿里巴巴高度重视数据中心的网络改造、云产品改造、应用及网络改造等多个维度,经过半年以来的建设,阿里云已经完成了域名解析等关键产品的分析,现在阿里云已经完...

传授知识的天使 ⋅ 23分钟前 ⋅ 0

windows Android sdk 配置

1、下载Android SDK,点击安装,直接默认路径即可! 下载地址:http://developer.android.com/sdk/index.html 2、默认路径安装后,安装完成,开始配置环境变量。 3、打开计算机属性——高级系...

阿豪boy ⋅ 26分钟前 ⋅ 0

bash shell script 简明教程

User <--> bash <--> kernel shell is not kernel or part of kernel various shells: tcsh, csh, bash, ksh find the using shell: echo $SHELL find all the shells: cat /etc/shells what......

mskk ⋅ 28分钟前 ⋅ 0

Service Mesh简史

William Morgan Service Mesh是一个相当新的概念,讲它的“历史”似乎有些勉强。就目前而言,Service Mesh已经在部分企业生产环境中运行了超过18个月,它的源头可以追溯到2010年前后互联网公...

好雨云帮 ⋅ 29分钟前 ⋅ 0

10个免费的服务器监控工具

监控你的WEB服务器或者WEB主机运行是否正常与健康是非常重要的。你要确保用户始终可以打开你的网站并且网速不慢。服务器监控工具允许你收集和分析有关你的Web服务器的数据。 有许多非常好的服...

李朝强 ⋅ 41分钟前 ⋅ 0

压缩工具之zip-tar

zip 支持目录压缩。使用yum安装zip包,使用yum安装unzip包 zip 1.txt.zip 1.txt #将1.txt文件压缩,新生成的压缩文件为1.txt.zip,原文件保留 zip -r 123.zip 123/ #-r对目录操作。将123/目录...

ZHENG-JY ⋅ 42分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部