字典转模型

字典转模型:
   
   一个新的技术是为了解决某个问题或者优化某个技术而产生的.那么字典转模型是为了解决为什么问题而产生的呢?
 
      1.写代码的时候,如果直接用数组或者字典的话,需要多次使用,可能会因为不小心把键名写错,而程序并不报错。鉴于此,可以考虑把字典数据转换成一个模型,把数据封装到一个模型中去,让viewController不再直接和数据打交道,而是和模型交互。
 
      2.一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key时,编辑器没有智能提示,需要手敲。如:
 
          dict[@"name"] = @"Jack";  手敲字符串key,key容易写错
 
        Key如果写错了,编译器不会有任何警告和报错,造成设错数据或者取错数据
 
      3.字典跟模型的优缺点比较:
 
         1>字典在使用key的时候Xcode不会有提示,容易出错,模型就不会
         
         2>①所谓模型,其实就是数据模型,专门用来存放数据的对象,用它来表示数据会更加专业
         
           ②模型设置数据和取出数据都是通过它的属性,属性名如果写错了,编译器会马上报错,因此,保证了数据的正确性
         
           ③使用模型访问属性时,编译器会提供一系列的提示,提高编码效率
 
   字典转模型的好处:
 
        (1)降低代码的耦合度

(2)所有字典转模型部分的代码统一集中在一处处理,降低代码出错的几率

(3)在程序中直接使用模型的属性操作,提高编码效率

(4)调用方不用关心模型内部的任何处理细节
 
 
   字典转模型的注意事项:
 
      1.模型应该提供一个可以传入字典参数的构造方法和对应的类方法
 
          - (instancetype)initWithDict:(NSDictionary *)dict;
 
          + (instancetype)xxxWithDict:(NSDictionary *)dict;
 
   提示:在模型中合理地使用只读属性,可以进一步降低代码的耦合度; 可以把一些数据逻辑代码放在模型中,是代码更简洁
 
 
   模型嵌套模型和模型设计原则

时间: 2024-12-18 07:09:10

字典转模型的相关文章

iOS开发——笔记篇&关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结

关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结 一:Plist读取 1 /******************************************************************************/ 2 一:简单plist读取 3 4 1:定义一个数组用来保存读取出来的plist数据 5 @property (nonatomic, strong) NSArray *shops; 6 7 2:使用懒加载的方

字典转模型KVC和runtime二者实现与区别

我们知道在开发中,字典转模型是一种很常用的设计模式,当字典中元素的个数比较少的时候,我们可以直接用dic[key]去给模型对象的属性赋值,但是当字典中元素的个数比较多的时候,再用前面的解决方法就不行了,所以就有了KVC(key value coding:键值编码)字典转模型的设计模式. KVC的设计原理: [item setValue:@"value" forKey:@"property"]: 1.首先去模型中查找有没有setProperty,找到,直接调用赋值 [

关于字典转模型的个人理解

1.字典跟模型的优缺点比较: 1>字典在使用key的时候Xcode不会有提示,容易出错,模型就不会 2>①所谓模型,其实就是数据模型,专门用来存放数据的对象,用它来表示数据会更加专业 ②模型设置数据和取出数据都是通过它的属性,属性名如果写错了,编译器会马上报错,因此,保证了数据的正确性 ③使用模型访问属性时,编译器会提供一系列的提示,提高编码效率 2.字典转模型的过程(中间加了一些个人想法) 1.>首先需要创建一个plist文件,将字典中的元素添加到plist文件中 注意:应该是创建的N

字典转模型的三种方法之四:总结

模型 1 // 2 // YSFoodTypeModule.h 3 // YSUiSplitViewController 4 // 5 // Created by ys on 15/12/12. 6 // Copyright (c) 2015年 ys. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 @interface YSFoodTypeModule : NSObject 12 13 @proper

字典转模型第三方框架---MJExtension

字典转模型第三方框架 Mantle 所有模型都必须继承自MTModel JSONModel 所有模型都必须继承自JSONModel MJExtension 不需要强制继承任何其他类 设计框架需要考虑的问题 侵入性 侵入性大就意味着很难离开这个框架 易用性 比如少量代码实现N多功能 扩展性 很容易给这个框架增加新功能 MJExtension框架在gitHub的下载地址 https://github.com/CoderMJLee/MJExtension *:first-child { margin-

iOS开发UI篇—字典转模型

iOS开发UI篇—字典转模型 一.能完成功能的“问题代码” 1.从plist中加载的数据 2.实现的代码 // // LFViewController.m // 03-应用管理 // // Created by apple on 14-5-22. // Copyright (c) 2014年 heima. All rights reserved. // #import "LFViewController.h" @interface LFViewController () @proper

字典转模型(国旗选择)

"[案例: 国旗选择]" //此处插入国旗选择的图片 >加载flags.plist数据到 "国旗模型[Flag.h]" >掌握代理[-(UIView *)pickerView:viewForRow:forComponent:reusingView:]的使用 (1)在数据源里返回一组数据,行数由国旗个数决定 (2)在代理方法中使用上面的方法,每一行返回一个View,返回的这个view为label (3)打印reusingView的地址和文字,"查

字典转模型方法总结

第一步:将字典的元素转为实例变量,其中注意的是类型的不同: 代码如下: 1 // 2 // HMQuestion.h 3 // 01-超级猜图 4 // 5 // Created by Administrator on 15/10/7. 6 // Copyright 2015年 ccsu. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 @interface HMQuestion : NSObject

iOS中实现plist中读取数据实现Cell的显示(字典转模型,实现按序分组)修改图片的尺寸

RootViewController.m #import "RootViewController.h" #import "UIImage+UIImageScale.h" @interface RootViewController ()<UITableViewDataSource,UITableViewDelegate> @property (nonatomic, retain) NSArray *apps; //存放排好序的keys @property