首页 > 代码库 > iOS开发项目篇—25字典转模型第三方框架、运行时机制简介

iOS开发项目篇—25字典转模型第三方框架、运行时机制简介

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"]=@12;13  14     15     //3.发送Post请求16    // url:https://api.weibo.com/2/statuses/home_timeline.json17     [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 YYStatusModel10 //+(instancetype)statusModelWithDict:(NSDictionary *)Dict11 //{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 *)objectClassInArray26 {27       return @{@"pic_urls" : [YYPhotoModel class]};28 }29 30 @end

效果:

二、运行时简介

运行时:其实就是OC的底层,平时写的OC代码,最终都转换成底层的运行时代码(纯C语言)

查看生成的文件

转换后的main函数:

去除强制转换后的代码:

注意:理解消息机制

编译器会把我们写的所有OC代码都转换成运行时代码,上面的代码转换成发送消息

OC是披了一件面向对象外衣的C语言。

运行时强调可以动态的修改、删除方法等。