[iOS微博项目 - 2.6] - 获取微博数据
/** 加载微博数据 */
- (void) loadWeiboData {
// 创建AFNetworking的http操作中管理器
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; // 设置参数
NSMutableDictionary *param = [NSMutableDictionary dictionary];
param[@"access_token"] = [HVWAccountInfoTool accountInfo].access_token; // 发送请求
[manager GET:@"https://api.weibo.com/2/statuses/home_timeline.json" parameters:param success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject) {
HVWLog(@"获取微博数据成功-------%@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
HVWLog(@"获取微博数据失败------%@", error);
}];
}
statuses = [
{
rid = 0_0_2669621413509583897,
visible = {
type = 0,
list_id = 0
},
original_pic = http://ww1.sinaimg.cn/large/c3ad47bejw1eoygflrel2g201w034q34.gif,
mid = 3806890389487492,
source = <a href="http://app.weibo.com/t/feed/3j6BDx" rel="nofollow">孔明社交管理</a>,
truncated = 0,
reposts_count = 2,
bmiddle_pic = http://ww1.sinaimg.cn/bmiddle/c3ad47bejw1eoygflrel2g201w034q34.gif,
darwin_tags = [
],
//
// HVWUser.h
// HVWWeibo
//
// Created by hellovoidworld on 15/2/5.
// Copyright (c) 2015年 hellovoidworld. All rights reserved.
// #import <Foundation/Foundation.h> @interface HVWUser : NSObject /** 友好显示名称 */
@property(nonatomic, copy) NSString *name; /** 用户头像地址(中图),50×50像素 */
@property(nonatomic, copy) NSString *profile_image_url; +(instancetype) userWithDict:(NSDictionary *) dict; @end
//
// HVWUser.m
// HVWWeibo
//
// Created by hellovoidworld on 15/2/5.
// Copyright (c) 2015年 hellovoidworld. All rights reserved.
// #import "HVWUser.h" @implementation HVWUser +(instancetype) userWithDict:(NSDictionary *) dict {
HVWUser *user = [[self alloc] init]; user.name = dict[@"name"];
user.profile_image_url = dict[@"profile_image_url"]; return user;
} @end
//
// HVWStatus.h
// HVWWeibo
//
// Created by hellovoidworld on 15/2/5.
// Copyright (c) 2015年 hellovoidworld. All rights reserved.
// #import <Foundation/Foundation.h>
#import "HVWUser.h" @interface HVWStatus : NSObject /** 微博信息内容 */
@property(nonatomic, copy) NSString *text; /** 微博作者的用户信息字段 详细 */
@property(nonatomic, strong) HVWUser *user; /** 微博配图地址数组,里面装载的时HVWPic模型 */
@property(nonatomic, strong) NSArray *pic_urls; + (instancetype) statusWithDict:(NSDictionary *) dict; @end
//
// HVWStatus.m
// HVWWeibo
//
// Created by hellovoidworld on 15/2/5.
// Copyright (c) 2015年 hellovoidworld. All rights reserved.
// #import "HVWStatus.h"
#import "HVWUser.h" @implementation HVWStatus + (instancetype) statusWithDict:(NSDictionary *) dict {
HVWStatus *status = [[HVWStatus alloc] init]; status.text = dict[@"text"];
status.user = [HVWUser userWithDict:dict[@"user"]]; return status;
} @end
// HVWHomeViewController.m
/** 加载微博数据 */
- (void) loadWeiboData {
// 创建AFNetworking的http操作中管理器
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; // 设置参数
NSMutableDictionary *param = [NSMutableDictionary dictionary];
param[@"access_token"] = [HVWAccountInfoTool accountInfo].access_token; // 发送请求
[manager GET:@"https://api.weibo.com/2/statuses/home_timeline.json" parameters:param success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject) {
// HVWLog(@"获取微博数据成功-------%@", responseObject); // 保存数据到内存
NSArray *dataArray = responseObject[@"statuses"]; for (NSDictionary *dict in dataArray) {
HVWStatus *status = [HVWStatus statusWithDict:dict];
[self.statuses addObject:status];
} // 刷新数据
[self.tableView reloadData]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
HVWLog(@"获取微博数据失败------%@", error);
}];
} - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *ID = @"HomeCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
if (nil == cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
} HVWStatus *status = self.statuses[indexPath.row];
HVWUser *user = status.user; // 加载内容
cell.textLabel.text = status.text;
// 作者
cell.detailTextLabel.text = user.name;
// 作者头像
NSString *imageUrlStr = user.profile_image_url;
[cell.imageView setImageWithURL:[NSURL URLWithString:imageUrlStr] placeholderImage:[UIImage imageWithNamed:@"avatar_default_small"]]; return cell;
}
//
// HVWUser.h
// HVWWeibo
//
// Created by hellovoidworld on 15/2/5.
// Copyright (c) 2015年 hellovoidworld. All rights reserved.
// #import <Foundation/Foundation.h> @interface HVWUser : NSObject /** 友好显示名称 */
@property(nonatomic, copy) NSString *name; /** 用户头像地址(中图),50×50像素 */
@property(nonatomic, copy) NSString *profile_image_url; @end
//
// HVWStatus.h
// HVWWeibo
//
// Created by hellovoidworld on 15/2/5.
// Copyright (c) 2015年 hellovoidworld. All rights reserved.
// #import <Foundation/Foundation.h>
#import "HVWUser.h" @interface HVWStatus : NSObject /** 微博信息内容 */
@property(nonatomic, copy) NSString *text; /** 微博作者的用户信息字段 详细 */
@property(nonatomic, strong) HVWUser *user; /** 微博配图地址数组,里面装载的时HVWPic模型 */
@property(nonatomic, strong) NSArray *pic_urls; @end
// HVWHomeViewController.m
/** 加载微博数据 */
- (void) loadWeiboData {
// 创建AFNetworking的http操作中管理器
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; // 设置参数
NSMutableDictionary *param = [NSMutableDictionary dictionary];
param[@"access_token"] = [HVWAccountInfoTool accountInfo].access_token; // 发送请求
[manager GET:@"https://api.weibo.com/2/statuses/home_timeline.json" parameters:param success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject) {
// HVWLog(@"获取微博数据成功-------%@", responseObject); // 保存数据到内存
NSArray *dataArray = responseObject[@"statuses"]; // 使用MJExtension直接进行字典-模型转换
self.statuses = [HVWStatus objectArrayWithKeyValuesArray:dataArray]; // 刷新数据
[self.tableView reloadData]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
HVWLog(@"获取微博数据失败------%@", error);
}];
}
//
// HVWPic.h
// HVWWeibo
//
// Created by hellovoidworld on 15/2/5.
// Copyright (c) 2015年 hellovoidworld. All rights reserved.
// #import <Foundation/Foundation.h> @interface HVWPic : NSObject /** 缩略图片地址,没有时不返回此字段 */
@property(nonatomic, copy) NSString *thumbnail_pic; @end
//
// HVWStatus.m
// HVWWeibo
//
// Created by hellovoidworld on 15/2/5.
// Copyright (c) 2015年 hellovoidworld. All rights reserved.
// #import "HVWStatus.h"
#import "HVWPic.h" // 注意引入框架
#import "MJExtension.h" @implementation HVWStatus - (NSDictionary *)objectClassInArray {
// 返回一个字典,创建数组子元素和包装类的映射关系
return @{@"pic_urls": [HVWPic class]};
} @end
[iOS微博项目 - 2.6] - 获取微博数据的更多相关文章
- [iOS微博项目 - 3.6] - 获取未读消息
github: https://github.com/hellovoidworld/HVWWeibo A.获取登陆用户未读消息 1.需求 获取所有未读消息,包括新微博.私信.@.转发.关注等 把未 ...
- [iOS微博项目 - 3.2] - 发送微博
github: https://github.com/hellovoidworld/HVWWeibo A.使用微博API发送微博 1.需求 学习发送微博API 发送文字微博 发送带有图片的微博 ...
- [iOS微博项目 - 3.4] - 获取用户信息
github: https://github.com/hellovoidworld/HVWWeibo A.获取用户信息 1.需求 获取用户信息并储存 把用户昵称显示在“首页”界面导航栏的标题上 ...
- [iOS微博项目 - 3.1] - 发微博界面
github: https://github.com/hellovoidworld/HVWWeibo A.发微博界面:自定义UITextView 1.需求 用UITextView做一个编写微博的输 ...
- [iOS微博项目 - 4.0] - 自定义微博cell
github: https://github.com/hellovoidworld/HVWWeibo A.自定义微博cell基本结构 1.需求 创建自定义cell的雏形 cell包含:内容.工具条 内 ...
- AJ学IOS 之微博项目实战(13)发送微博调用相机里面的图片以及调用相机
AJ分享,必须精品 一:效果 二:代码 相机部分就简单多了,几行代码调用而已,但是如果你要是想实现更多丰富的功能,需要自己写.利用AssetsLibrary.framework,利用这个框架可以获得手 ...
- AJ学IOS 之微博项目实战(12)发送微博自定义工具条代理实现点击事件
AJ分享,必须精品 一:效果 二:封装好的工具条 NYComposeToolbar.h 带代理方法 #import <UIKit/UIKit.h> typedef enum { NYCom ...
- AJ学IOS 之微博项目实战(11)发送微博自定义TextView实现带占位文字
AJ分享,必须精品 一:效果 二:代码: 由于系统自带的UITextField:和UITextView:不能满足我们的需求,所以我们需要自己设计一个. UITextField: 1.文字永远是一行,不 ...
- 项目中对获取的数据进行下载成Excel表格
//moment是操作日期的插件 //引入lodash是为了方便操作数据 //xlsx是获取表格的必须插件 import moment from 'moment'; import _ from ...
随机推荐
- [ionic开源项目教程] - 第12讲 医疗模块的实现以及Service层loadMore和doRefresh的提取封装
关注微信订阅号:TongeBlog,可查看[ionic开源项目]全套教程. 这一讲主要实现tab2[医疗]模块,[医疗]模块跟tab1[健康]模块类似. [ionic开源项目教程] - 第12讲 医疗 ...
- POJ 3468 (线段树 区间增减) A Simple Problem with Integers
这题WA了好久,一直以为是lld和I64d的问题,后来发现是自己的pushdown函数写错了,说到底还是因为自己对线段树理解得不好. 因为是懒惰标记,所以只有在区间分开的时候才会将标记往下传递.更新和 ...
- Jquery源码中的Javascript基础知识(三)
这篇主要说一下在源码中jquery对象是怎样设计实现的,下面是相关代码的简化版本: (function( window, undefined ) { // code 定义变量 jQuery = fun ...
- js数组的声明与应用
js数组的声明与应用 数组:一种容器,存储批量数据.JavaScript是一种弱类型语言.什么是弱类型,就是变量可以存储多种类型变量的引用不会报错.所以js数组可以存储不同的数据. 一.数组的作用:只 ...
- java程序员修炼之道
今天在论坛里看到了一位工作10年的java大牛总结的java程序员修炼之道,看完后给出的评价是:字字玑珠,深入人心,猛回头,自己一无是处··· 大牛告诉我们应该好好学习与修炼以下知识与技能 Java语 ...
- 关于jsp利用EL和struts2标签来遍历ValueStack的东东 ------> List<Map<K,V>> 以及 Map<K,<List<xxx>>> 的结构遍历
//第一种结构Map<K,<List<xxx>>> <body> <% //显示map<String,List<Object>& ...
- win32 API 学习
SendMessage 函数原型 LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam) 详情:百度百科 msd ...
- php 文件file常用的操作
多是代码形式呈现,更多的信息可以查看php api文档,搜索Filesystem; //创建文件夹 $path_find = AppRoot . '/Temp/excel_curl'; //查找的路径 ...
- Oracle时间函数numtoyminterval()
格式:NumToYMInterval(n, interval_unit); n: 数值类型 interval_unit: 'YEAR', 'MONTH' ,或其他可以转换成这两个值之一的表达式 N ...
- log4j配置文件详细解释
web.xml中配置启动log4j的配置 <!-- webAppRootKey进行配置,这里主要是让log能将日志写到对应项目根目录下 --> <!-- 定义以后,在Web Cont ...