IOS中级篇 —— 字典转模型

@property (nonatomic, copy) NSString *icon;
@property (nonatomic, copy) NSString *name;

-(instancetype) initWithDic:(NSDictionary *)dic;

+(instancetype) appViewWithDic:(NSDictionary *)dic;

-(instancetype)initWithDic:(NSDictionary *)dic{

?? if ([super init]) {

??????? _icon = dic[@"icon"];
??????? _name = dic[@"name"];
??? }
??? return self;
}

+(instancetype)appViewWithDic:(NSDictionary *)dic
{
??? return [[self alloc] initWithDic:dic];

}

?

-(NSArray *)apps{
??? if (!_apps) {
??????? NSString *path = [[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil];
??????? NSArray *array = [NSArray arrayWithContentsOfFile:path];
??????? NSMutableArray *mArray = [NSMutableArray array];
??????? for (NSDictionary *dic in array) {
??????????? appViewModel *model = [appViewModel appViewWithDic:dic];
??????????? [mArray addObject:model];
??????? }
??????? _apps = mArray;
??? }
??? return? _apps;

}

如果在外部用来模型来做为成员变量 ?一定要重新模型变量的set方法 ? 否则没值

?

时间: 2024-08-05 12:49:22

IOS中级篇 —— 字典转模型的相关文章

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

文顶顶 iOS开发UI篇—字典转模型

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

iOS之KVC字典转模型的底层实现

KVC: Key Value Coding (键值编码) 在iOS开发中,KVC是我们经常要使用的技术.那么KVC有什么作用呢?简单列举一下下面几种: 取值和赋值(开发中基本不用) 获取对象私有变量的值.(经常使用,例如UIPageContorl分页, 设置圆点为图片) 改变对象私有变量的值(经常使用) 简单的字典转模型(偶尔使用) 模型转字典 批量取值 KVC字典转模型的底层实现 通常我们手动将字典转模型的话,会在模型中提供一个类方法接收一个字典,在这个方法中将字典转换成模型,再将转换好的模型

iOS应用管理(字典转模型)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1e9421 } span.s1 { } 1. 新建appViewModel 1.1声明需要的属性 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1e9421 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Me

【IOS问题】字典转模型,属性个数不匹配问题

一.字典转模型的键值对与模型属性不匹配问题 1. 字典的键个数 < 模型的属性个数 (key 能与模型的属性匹配) 1> .KVO 方式: - setValuesForKeysWithDictionary: 2> for循环的方式,一一赋值 2.字典的键个数 = 模型的属性个数 (key 能与模型的属性匹配) 同1. 3.字典的个数 > 模型的属性个数 (模型的属性为字典key 的其中一部分) 一共有三种解决方式 二.解决办法: 建立一个GXApp的模型,申明两个属性: name(

IOS中级篇—— 多线程--NSOperation

NSOperation 操作? 任务是对代码的封装, 操作是对任务的封装 --目的:就是可以随时的暂停/恢复/取消任务; NSOperation 对GCD的封装. OC 运用起来更加方便. 抽象类. 车 NSOperation的使用: <1> 操作直接调用 start方法,就是在当前线程执行(Block中封装的任务数大于1的情况除外). <2> 就是将操作放在队列中.自动的帮我们开启线程,来执行操作. 两个子类: NSInvocationOperation: 调用 ? ? ? 1.

IOS——中级篇 --TableView以及Cell

????? //? 设置tableView的行高 ??? self.tableView.rowHeight = 100;//? 设置tableView分割线的样式//? UITableViewCellSeparatorStyleNone 不显示分割线//? UITableViewCellSeparatorStyleSingleLine? 显示分割线(默认) ??? self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingl

IOS中级篇 —— 多线程 - GCD

GCD 是c语言的框架,不需要手动管理内存 是一个面向任务   不是面向线程,不需要管理线程的生命周期 GCD 任务/队列 执行函数 任务:Block  任务都封闭在Block中.  —— 线程执行 队列:存放任务    FIFO (先进先出的原则) GCD中的队列: 串行队列:想要任务按顺序执行 //    创建一个串行队列 dispatch_queue_t serialQueue = dispatch_queue_create("serial", DISPATCH_QUEUE_SE

IOS中级篇 —— 日期时间对象

结合NSCalendar和NSDate能做更多的日期\时间处理 获得NSCalendar对象 NSCalendar *calendar = [NSCalendar currentCalendar];?获得年月日 - (NSDateComponents *)components:(NSCalendarUnit)unitFlags fromDate:(NSDate *)date; //创建日期 NSDate?*d = [NSDate?date]; //创建日期对象 NSCalendar?*ca =