码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2014-07-14 08:48:44      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   strong   

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

一、使用第三方框架完成字典转模型

1.获取框架

在www.code4app.com网站中,搜索字典转模型

bubuko.com,布布扣

可以点击下载代码进行下载,也可以带github上去下载。

bubuko.com,布布扣

管理框架的好处:点击刷新按钮会刷新所有的项目。

2.使用

1.导入第三方框架

bubuko.com,布布扣

2.使用示例

bubuko.com,布布扣

错误提示:

bubuko.com,布布扣

在刷新的时候直接使用一行代码即可:

 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.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

效果:

bubuko.com,布布扣

二、运行时简介

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

bubuko.com,布布扣

查看生成的文件

bubuko.com,布布扣

转换后的main函数:

bubuko.com,布布扣

去除强制转换后的代码:

bubuko.com,布布扣

注意:理解消息机制

bubuko.com,布布扣

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

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

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

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

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

标签:style   blog   http   color   使用   strong   

原文地址:http://www.cnblogs.com/wendingding/p/3840053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!