zoukankan      html  css  js  c++  java
  • iOS NSDictionary与模型(JSONModel、YYModel)的对比

    NSDictionary大家并不陌生,为什么要把他和模型(JSONModel、YYModel)做对比呢?

    我们项目上的一贯操作就是后台拿数据,一般是json,对于iOS来讲我们可以直接使用NSDictionary去接受这个实体,这样我们就不用再去自定义模型了,

    但这在涉及本地修改接口返回数据(譬如选中标记)的时候,可能会比较麻烦,因为NSDictionary是不可变的,修改起来比较麻烦,此时就体现出了模型的优点

    现在简单对比下两者

    NSDictionary

    优点:

    1、可以直接使用,不用自定义模型

    缺点:

    1、不能将属性使用.语法访问,容易出错

        只能使用key(dict[@"key"])访问,这样到处使用字符串访问,容易出错,且即便写错,不会报错

    2、修改属性值或者添加新属性,麻烦且易出错

        只能转变为NSMutableDictionary,然后再重新赋值,麻烦且易出错,

        如果该NSDictionary包含在NSArray中,还要将该NSArray变为NSMutableArray,然后再重新赋值给NSArray

        就为了修改属性值或者添加本地属性,需要转一大圈才可以

        备注:

        如果我确信要修改这个字典里的某个值或者我需要在该字典中添加新的属性,

        我可以直接使用NSMutableDictionary,如果涉及数组我可以直接使用NSMutableArray,这样当然是可以的,

        但是不推荐这么做

    使用场景:

        一般我们用在数据比较简单,且不需要修改属性值或者添加新属性的情况

    模型(JSONModel、YYModel)

    优点:

    1、可以使用.语法访问

        只用在模型中一次性定义属性字段,安全不易出错,写错属性直接报错

    2、修改属性值或者添加新属性,方便安全

        不需要数据来回转化,直接操作即可 ,即便模型包含在NSArray中,也是直接操作即可,不用将该NSArray变为NSMutableArray,然后再重新赋值给NSArray

    缺点:

    1、需要自定义模型

        

    使用场景:

        一般我们用在数据比较庞大,或者需要修改属性值或者添加新属性的情况

  • 相关阅读:
    在SSH框架下按条件分页查询
    关于从数据库中取出来的数据在jsp页面上级联显示出来的问题,和ajax处理乱码
    在js中下拉列表值的选定
    java中的日期转换方法
    用js判断输入文本框的内容类型
    将selenium录制的脚本转换为java脚本到Eclipse中运行(一)
    selenium录制并回放请求-心得(一)
    selenium java版本的安装方法与注意事项
    python编写的面向对象的XXE自动化检测工具(对单个功能进行检测)
    微服务&spring cloud架构系列
  • 原文地址:https://www.cnblogs.com/lijianyi/p/15014663.html
Copyright © 2011-2022 走看看