zoukankan      html  css  js  c++  java
  • iOS 懒加载 字典转模型

    >>>懒加载

    一、介绍

      懒加载又称延时加载,即在系统调用时加载,如果系统不调用则不会加载,所谓懒加载其实就是重写其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

  • 相关阅读:
    Data Base mysql备份与恢复
    java 乱码问题解决方案
    【知识强化】第二章 物理层 2.1 通信基础
    【知识强化】第二章 进程管理 2.2 处理机调度
    【知识强化】第二章 进程管理 2.1 进程与线程
    【知识强化】第一章 操作系统概述 1.3 操作系统的运行环境
    【知识强化】第一章 网络体系结构 1.1 数据结构的基本概念
    【知识强化】第一章 网络体系结构 1.2 计算机网络体系结构与参考模型
    【知识强化】第一章 网络体系结构 1.1 计算机网络概述
    【知识强化】第一章 操作系统概述 1.1 操作系统的基本概念
  • 原文地址:https://www.cnblogs.com/roxy/p/5685961.html
Copyright © 2011-2022 走看看