AJ学IOS 之微博项目实战(8)用AFNetworking和SDWebImage简单加载微博数据
AJ分享,必须精品
一:效果
没有图文混排,也没有复杂的UI,仅仅是简单的显示出微博数据,主要介绍AFNetworking和SDWebImage的简单用法
二:加载数据AFNetworking
AFNetworking用法
AFNetworking的用法大体有三步:
一:下载第三方框架(githup也好,百度也好,多的是)
二:导入头文件 #import "AFNetworking.h"
三:开始写代码(以上两步所有的第三方框架都通用)
1,请求管理者
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
2,拼接请求参数
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"*****"] = @"*****";
params[@"*****"] = @"*****";
params[@"*****"] = @"*****";
。。。。
///可以写很多参数
3,发送请求
[mgr GET:@"https:请求的网址" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
//这里写请求成功用的代码
NSLog(@"请求成功 --- %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//这里写请求失败用的代码
NSLog(@"请求失败 --- %@",error);
}];
下面贴出微博项目中的代码
加载最新的微博数据
/**
* //加载最新的微博数据
*
*
*/
-(void)loadNewStatus
{
//1,请求管理者
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
//2,拼接请求参数
NSMutableDictionary *params = [NSMutableDictionary dictionary];
HWAccount *account = [HWAccountTool account];
params[@"access_token"] = account.access_token;
// params[@"count"] = @20;
//3,发送请求
[mgr GET:@"https://api.weibo.com/2/statuses/friends_timeline.json" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
HWLog(@"请求成功 --- %@", responseObject);
//取得微博数组
self.statuses = responseObject[@"statuses"];
//刷新表格
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
HWLog(@"请求失败 --- %@",error);
}];
}
三:SDWebImage用法
SDWebImage的用法大体有三步:
一:下载第三方框架(githup也好,百度也好,多的是)
二:导入头文件 #import "UIImageView+WebCache.h" (这里面很多头文件,看自己具体需要那种了)
三:开始写代码(以上两步所有的第三方框架都通用)
这个代码写起来就更简单了,例如微博中我们想要让他自己下载缓存一张图片用作每个tableViewCell的图片,并且显示一张占位图片,一句代码就搞定了
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:placehoder];
然后需要做防止程序内存溢出的操作
一:在程序AppDelegate 中写入头文件#import "SDWebImageManager.h"
二:调用方法,在整个程序内存警报时候调用-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
三:方法内写入
//整个程序内存警报时候调用
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
SDWebImageManager *mgr = [SDWebImageManager sharedManager];
//1,取消下载
[mgr cancelAll];
//2,清除内存中的所有图片
[mgr.imageCache clearMemory];
}
这里贴出cell全部代码供参考
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *ID = @"status";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
}
//用indexPathRow取出对应的一条微博字典
NSDictionary *status = self.statuses[indexPath.row];
//设置微博作者
NSDictionary *user = status[@"user"];
cell.textLabel.text = user[@"name"];
//设置微博内容
cell.detailTextLabel.text = status[@"text"];
//设置微博头像
NSString *imageUrl = user[@"profile_image_url"];
//占位图
UIImage *placehoder = [UIImage imageNamed:@"avatar_default_small"];
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:placehoder];
return cell;
}
AJ学IOS 之微博项目实战(8)用AFNetworking和SDWebImage简单加载微博数据的更多相关文章
- Android项目实战(三十):Fresco加载gif图片并播放
前言: 项目中图文混合使用的太多太多了,但是绝大部分都是静态图片. 然而项目开发中有这么一个需求:显示一个出一个简短的动画(一般都不超过3秒)演示 比如说:一个功能提供很多步骤来教用户做广播体操,那么 ...
- AJ学IOS(17)UI之纯代码自定义Cell实现新浪微博UI
AJ分享,必须精品 先看效果图 编程思路 代码创建Cell的步骤 1> 创建自定义Cell,继承自UITableViewCell 2> 根据需求,确定控件,并定义属性 3> 用get ...
- AJ学IOS(16)UI之XIB自定义Cell实现团购UI
AJ分享,必须精品 先看效果图 自定义Cell 本次主要是自定义Cell的学习 实现自定义Cell主要有三种方法:按照使用的频繁度排序: XIB > 纯代码 > StoryBoard XI ...
- AJ学IOS(14)UI之UITableView扩充_表格的修改_(增删移动)
AJ分享,必须精品 先看效果图 代码 // // Created by apple on 14-8-19. // Copyright (c) 2014年 itcast. All rights rese ...
- iOS 设计 用户为王 - 关于征询授权、注册及加载等待的体验优化
你要做的东西一定要是你无比渴望这世界上能出现的东西,这股热情和能量将会融入到你的应用中,成为它腾飞的初速度,为你带来积极反馈.把自己当做app最重要的用户,这一点非常重要. http://www.co ...
- 【记录】VS2012新建MVC3/MVC4项目时,报:此模板尝试加载组件程序集“NuGet.VisualStudio.Interop...”
最近电脑装了 VisualStudio "14" CTP,由于把其他版本的 VS 卸掉,由高到低版本安装,当时安装完 VisualStudio "14" CTP ...
- iOS --- UIWebView的加载本地数据的三种方式
UIWebView是IOS内置的浏览器,可以浏览网页,打开文档 html/htm pdf docx txt等格式的文件. safari浏览器就是通过UIWebView做的. 服务器将MIM ...
- ios网络学习------4 UIWebView的加载本地数据的三种方式
ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...
- iOS开发 XML解析和下拉刷新,上拉加载更多
iOS开发 XML解析和下拉刷新,上拉加载更多 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示 ...
随机推荐
- Abp 抛出详细异常
Abp在默认情况下,只要后端抛出异常,一概过滤为服务器错误并弹出,这样并不方便调试,这个时候需要开启一个开关即可: 在模块预初始化PreInitialize中开启,代码如下: , 这样就可以看到详细的 ...
- 安装SQL Server 2008R2 报错“此计算机上安装了 Microsoft Visual Studio 2008 的早期版本”解决方法
安装SQL Server 2008 R2报错“此计算机上安装了 Microsoft Visual Studio 2008 的早期版本,请在安装 SQL Server 2008 前将 VS2008 升级 ...
- weblogic漏洞练习
About WebLogic WebLogic是美商Oracle的主要产品之一,系购并得来.是商业市场上主要的Java(J2EE)应用服务器软件(application server)之一,是世界上第 ...
- 原来 CPU 为程序性能优化做了这么多
本文主要来学习内存屏障和 CPU 缓存知识,以便于我们去了解 CPU 对程序性能优化做了哪些努力. 首先来看下 CPU 缓存: CPU 缓存 CPU 缓存是为了提高程序运行的性能,CPU 在很多处理上 ...
- 贪心-Bag of Tokens
2020-01-20 22:32:28 问题描述: 问题求解: 双指针 + 贪心. public int bagOfTokensScore(int[] tokens, int P) { Arrays. ...
- [BFS]Codeforces Igor In the Museum
Igor In the Museum time limit per test 1 second memory limit per test 256 megabytes input standard ...
- JS十大经典排序排序算法
1.冒泡排序 冒泡排序通常排在第一位,说明它是排序算法的入门算法,是最简单的一个排序算法,而且必须掌握和理解. 先来看看代码吧: function bubbleSort(arr) { let temp ...
- Building Applications with Force.com and VisualForce (DEV401) (二四):JavaScript in Visualforce
Dev401-025:Visualforce Pages: JavaScript in Visualforce Module Objectives1.Describe the use of AJAX ...
- 关于STM32F103系列从大容量向中容量移植的若干问题
一.把STM32F103大容量移植到STM32F103C8T6上的步骤: 1.换启动文件 startup_stm32f10x_cl.s ——互联型的器件 包括:STM32F105x ...
- C# Threading.Timer 为什么一会儿自己停了
这两天做一个socket通信的Demo,用定时器启动client端去连接server端,出现一个状况,连接几次后定时器就停了. 下面就是会造成终止的代码: public class Client { ...