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

  • 相关阅读:
    《代码大全2》读书笔记(三)
    软工第一次作业 进度记录三 简单的性能分析
    软工第一次作业 进度记录2
    WordPress发布文章前强制要求上传特色图像
    自定义php(NON-CORE WORDPRESS FILE) 引用 wordpress
    php 利用header 函数 下载各种文件
    apache php配置 虚拟目录 和 虚拟主机 多域名配置 原理解析
    JS 动态加载脚本 执行回调
    php 文件上传
    wordpress 插件 汉化
  • 原文地址:https://www.cnblogs.com/roxy/p/5685961.html
Copyright © 2011-2022 走看看