iOS开发项目篇—25字典转模型第三方框架、运行时机制简介
一、使用第三方框架完成字典转模型
1.获取框架
在www.code4app.com网站中,搜索字典转模型
可以点击下载代码进行下载,也可以带github上去下载。
管理框架的好处:点击刷新按钮会刷新所有的项目。
2.使用
1.导入第三方框架
2.使用示例
错误提示:
在刷新的时候直接使用一行代码即可:
1 /**加载最新微博数据*/ 2 -(void)loadNewStatus 3 { 4 //1.获得请求管理者 5 AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; 6 7 //2.封装请求参数 8 9 NSMutableDictionary *params=[NSMutableDictionary dictionary]; 10 params[@"access_token"] =[YYAccountTool accountModel].access_token; 11 //设置请求返回3天数据 12 params[@"count"][email protected]12; 13 14 15 //3.发送Post请求 16 // url:https://api.weibo.com/2/statuses/home_timeline.json 17 [mgr GET:@"https://api.weibo.com/2/statuses/home_timeline.json" parameters:params success:^(AFHTTPRequestOperation *operation, NSDictionary*accountDict) { 18 19 YYLog(@"请求成功--%@",accountDict[@"statuses"]); 20 // self.statuses=accountDict[@"statuses"]; 21 22 self.statuses = [NSMutableArray array]; 23 24 // 微博字典 -- 数组 25 NSArray *statusDictArray = accountDict[@"statuses"]; 26 27 //微博字典数组---》微博模型数组 28 self.statuses=[YYStatusModel objectArrayWithKeyValuesArray:statusDictArray]; 29 30 // for (NSDictionary *statusDict in statusDictArray) { 31 // YYStatusModel *status = [YYStatusModel objectWithKeyValues:statusDict]; 32 // [self.statuses addObject:status]; 33 // } 34 // 35 36 //重新刷新表格 37 [self.tableView reloadData]; 38 } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 39 YYLog(@"请求失败"); 40 }]; 41 42 }
告知数组里面存放的是模型:
1 // 2 // YYStatusModel.m 3 // 4 5 #import "YYStatusModel.h" 6 #import "MJExtension.h" 7 #import "YYPhotoModel.h" 8 9 @implementation YYStatusModel 10 //+(instancetype)statusModelWithDict:(NSDictionary *)Dict 11 //{ 12 // YYStatusModel *model=[[self alloc]init]; 13 // model.text=Dict[@"text"]; 14 // 15 // model.user=[YYUserModel userModelWithDict:Dict[@"user"]]; 16 // 17 // //嵌套模型 18 // NSDictionary *retweetedDict = Dict[@"retweetedDict"]; 19 // if (retweetedDict) { 20 // model.retweeted_status=[YYStatusModel statusModelWithDict:retweetedDict]; 21 // } 22 // return model; 23 //} 24 25 -(NSDictionary *)objectClassInArray 26 { 27 return @{@"pic_urls" : [YYPhotoModel class]}; 28 } 29 30 @end
效果:
二、运行时简介
运行时:其实就是OC的底层,平时写的OC代码,最终都转换成底层的运行时代码(纯C语言)
查看生成的文件
转换后的main函数:
去除强制转换后的代码:
注意:理解消息机制
编译器会把我们写的所有OC代码都转换成运行时代码,上面的代码转换成发送消息
OC是披了一件面向对象外衣的C语言。
运行时强调可以动态的修改、删除方法等。
iOS开发项目篇—25字典转模型第三方框架、运行时机制简介,布布扣,bubuko.com
时间: 2024-10-05 05:07:20