>>>懒加载

一、介绍

  懒加载又称延时加载,即在系统调用时加载,如果系统不调用则不会加载,所谓懒加载其实就是重写其get方法。

  在使用懒加载时要先判断该方法是否存在,如果不存在再进行实例化。

二、优点

  不必将创建对象的方法都写在viewDidLoad里面,代码可读性更强。

  每个控件的getter方法分别负责各自的实例化处理,独立性强,耦合性低。

三、使用

  声明一个属性,该属性既可以是私有属性也可以是在.h中声明的属性,懒加载的对象是一个属性。

  在.m文件中的viewDidLoad外面重写懒加载,即重写其getter方法。

  先判断_对象是否存在,如果不存在,在if中实例化属性对象,并设置对象的属性,并添加其特有的方法。

  返回_对象。

>>>字典转模型

一、介绍

  字典数据/数组(可以是plist中的数据也可以是网络后台的数据等)转化为模型对象/数组。

  模型要提供可以传入字典参数的构造方法(一个对象一个类方法)

    -(instancetype)initWithDict:(NSDictionary *)dict;

    +(instancetype)initWithDict:(NSDictionary *)dict;

二、优点

  将字典中的数据封装到一个模型类中,有MVC框架思想的优点,可以降低耦合性。

  所有的字典转模型可以写在一处,便于管理,同时也可以降低代码的出错率。

  字典转模型后,直接把字典中的数据转移到模型的属性中,外界可以直接调用模型的属性来获取数据,从而可以提高代码的编码效率。

  由于模型是在一个单独的类中进行的,外界不用关心类中的细节,只要使用就可以,更好的体现了面向对象的思想。

三、使用

  >在模型的.h文件中声明锁需要的所有属性。

  >在模型的.h文件中实例化两个方法: 

    -(instancetype)initWithDict:(NSDictionary *)dict;

    +(instancetype)initWithDict:(NSDictionary *)dict;

  >在模型的.m文件中,通过实现这两个方法获取数据:

    - (instancetype)initWithDict:(NSDictionary *)dict{

        self = [super init];

       if (self) {//给声明的属性赋值

       self.name = dict[@"name"];

      self.icon = dict[@"icon"];

        }

      return self;

    }

    + (instancetype)appInfoWithDict:(NSDictionary *)dict{

      return [[self alloc] initWithDict:dict];

    }

  >在懒加载判断为空的时候 ,通过path路径把数据转到模型数组中创建一个临时可用于盛放数据的数组,遍历获取的数据给临时数组赋值,将临时数组赋值给模型对象。

  

  

四、链接

    http://www.cnblogs.com/ansyxpf/p/5494240.html

iOS 懒加载 字典转模型的更多相关文章

  1. 懒加载 字典转模型 自定义cell

    1 懒加载: 1>  什么是懒加载? 懒加载又称为延时加载,即在系统调用的时候加载,如果系统不调用则不会加载.所谓的懒加载其实就是重写其 get 方法. 2>  特点:在使用懒加载的时候要 ...

  2. iOS 懒加载模式

    感谢: chengfang iOS开发-懒加载 1.懒加载--也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否 ...

  3. ios 懒加载详解

    iOS开发之懒加载 在iOS开发中几乎经常用到懒加载技术,比如我们存放网络数据的数组,控制器的view,控件的自定义,复杂的运算逻辑等等情况下都会用到懒加载技术,那么什么是懒加载呢?? 他又有什么样的 ...

  4. IOS懒加载

    1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 ...

  5. iOS 懒加载不起作用的原因

    在.m类中定义了一共strong属性,用懒加载getter方式去处理,发现用的时候无论如何属性都是null,调试后,发现根本没进getter方法. (ps:懒加载,又称为延迟加载.说的通俗一点,就是在 ...

  6. iOS - (懒加载)

    今天很坑爹,做界面的时候,tableview 明显做了复用了,数组也做了懒加载了,获取数据前也把数组给清空了,但是每次获取数据刷新表格的时候,数据确重复覆盖了(重复创建),后来给 cell 加了个白色 ...

  7. iOS开发——UI基础-懒加载,plist文件,字典转模型,自定义view

    一.懒加载 只有使用到了商品数组才会创建数组 保证数组只会被创建一次 只要能够保证数组在使用时才创建, 并且只会创建一次, 那么我们就称之为懒加载 lazy - (void)viewDidLoad 控 ...

  8. iOS边练边学--plist文件,懒加载,模型初使用--补充instancetype

    一.什么是plist文件 1>将数据直接写在代码里面,不是一种合理的做法.如果数据经常修改,就要经常翻开对应的代码进行修改,造成代码扩展性低 2>因此,可以考虑将经常变得数据放在文件中进行 ...

  9. iOS 开发——实用技术Swift篇&Swift 懒加载(lazy)

    Swift 懒加载(lazy) 在程序设计中,我们经常会使用 * 懒加载 * ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITableView,实现数据源方法的时候,通常我们都 ...

随机推荐

  1. lerna import && add 使用&&常见问题解决

    使用lerna 的import 我们可以方便的将一个普通的npm 包倒入到lerna 管理的monorepo 中 环境准备 lerna init 注意必须是一个git 项目,同时需要commit ,不 ...

  2. Unity 5.x Shader and Effects Cookbook(2nd) (Alan Zucconi Kenneth Lammers 著)

    1. Creating Your First Shader 2. Surface Shaders and Texture Mapping 3. Understanding Lighting Model ...

  3. Nginx可以做什么?看完这篇你就懂了

    本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得,欢迎留言交流. Nginx能做什么 —— ...

  4. JS中encodeURIComponent函数用php解码的代码

    JS中encodeURIComponent函数给中文编码后,如何用php解码?? 前提:编码前的中文可能是gbk,gb2312,utf-8等. 复制代码 代码如下: urldecode() iconv ...

  5. 深入详解美团点评CAT跨语言服务监控(七)消息分析器与报表(二)

    CrossAnalyzer-调用链分析 在分布式环境中,应用是运行在独立的进程中的,有可能是不同的机器,或者不同的服务器进程.那么他们如果想要彼此联系在一起,形成一个调用链,在Cat中,CrossAn ...

  6. git和gulp使用

    git push origin master/chunxiong git remote -v git merge chunxiong working tree:就是你所工作在的目录,每当你在代码中进行 ...

  7. YUICompressor的安装及使用(一)

    step1:下载ant和YUICompressor    1) Ant:   http://ant.apache.org/bindownload.cgi   打开页面后,下拉滚动条,找到如下图所示,单 ...

  8. https ssl 请求过程详解

    http  协议:http 协议是一种无状态,短链接的 通信协议,http 协议建立在 tcp 协议之上. http 协议 分成 三个 部分 请求行,请求头,请求体 请求行: 就是访问的地址 ( 包含 ...

  9. css加载字体跨域问题

    刚才碰到一个css加载字体跨域问题,记录一下.站点的动态请求与静态文件请求是不同的域名的.站点的域名为 www.domain.com,而静态文件的域名为 st.domain.com.问题:页面中加载c ...

  10. VS未能正确加载包

    这个方法同样适用于多个版本的VS 首先关闭VS进这里:C:\Users\用户名\AppData\Roaming\Microsoft\VisualStudio\11.0(2012是11.0,根据你的VS ...