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简单加载微博数据的更多相关文章

  1. Android项目实战(三十):Fresco加载gif图片并播放

    前言: 项目中图文混合使用的太多太多了,但是绝大部分都是静态图片. 然而项目开发中有这么一个需求:显示一个出一个简短的动画(一般都不超过3秒)演示 比如说:一个功能提供很多步骤来教用户做广播体操,那么 ...

  2. AJ学IOS(17)UI之纯代码自定义Cell实现新浪微博UI

    AJ分享,必须精品 先看效果图 编程思路 代码创建Cell的步骤 1> 创建自定义Cell,继承自UITableViewCell 2> 根据需求,确定控件,并定义属性 3> 用get ...

  3. AJ学IOS(16)UI之XIB自定义Cell实现团购UI

    AJ分享,必须精品 先看效果图 自定义Cell 本次主要是自定义Cell的学习 实现自定义Cell主要有三种方法:按照使用的频繁度排序: XIB > 纯代码 > StoryBoard XI ...

  4. AJ学IOS(14)UI之UITableView扩充_表格的修改_(增删移动)

    AJ分享,必须精品 先看效果图 代码 // // Created by apple on 14-8-19. // Copyright (c) 2014年 itcast. All rights rese ...

  5. iOS 设计 用户为王 - 关于征询授权、注册及加载等待的体验优化

    你要做的东西一定要是你无比渴望这世界上能出现的东西,这股热情和能量将会融入到你的应用中,成为它腾飞的初速度,为你带来积极反馈.把自己当做app最重要的用户,这一点非常重要. http://www.co ...

  6. 【记录】VS2012新建MVC3/MVC4项目时,报:此模板尝试加载组件程序集“NuGet.VisualStudio.Interop...”

    最近电脑装了 VisualStudio "14" CTP,由于把其他版本的 VS 卸掉,由高到低版本安装,当时安装完 VisualStudio "14" CTP ...

  7. iOS --- UIWebView的加载本地数据的三种方式

    UIWebView是IOS内置的浏览器,可以浏览网页,打开文档  html/htm  pdf   docx  txt等格式的文件.  safari浏览器就是通过UIWebView做的. 服务器将MIM ...

  8. ios网络学习------4 UIWebView的加载本地数据的三种方式

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

  9. iOS开发 XML解析和下拉刷新,上拉加载更多

    iOS开发 XML解析和下拉刷新,上拉加载更多 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示 ...

随机推荐

  1. 重定向 CORS 跨域请求

    TL;DR 非简单请求不可重定向,包括第一个preflight请求和第二个真正的请求都不行. 简单请求可以重定向任意多次,但如需兼容多数浏览器,只可进行一次重定向. 中间服务器应当同样配置相关 COR ...

  2. 李瑞红201771010111《面向对象程序设计(java)》第四周学习总结

    实验四:类与对象的定义及使用 第一部分:理论知识学习 1.类与对象概念 (1)类是构造对象的模板或蓝图,由类构造对象的过程称为创建类的实例.   (2)对象:即数据,对象有三个特性,行为.状态.标识. ...

  3. SSI服务器端包含注入

    服务器端嵌入:Server Side Include,是一种类似于ASP的基于服务器的网页制作技术.大多数(尤其是基于Unix平台)的WEB服务器如Netscape Enterprise Server ...

  4. 牛客网剑指offer【Python实现】——part2

    不用加减乘除做加法 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 两个数异或:相当于每一位相加,而不考虑进位: 两个数相与,并左移一位:相当于求得进位: 将上述两步的 ...

  5. 国内外主要的PHP开源CMS系统分析

    国内PHP开源CMS内容管理系统从程序框架,模版加载到程序功能上都有很大的进步,大部分都采用了自定义模块,自定义模型的方式,同时提供各个CMS都提供不同的特色功能,CMS内容管理系统一直影响着互联网的 ...

  6. Input标签中属性的注意点

    readonly 只读字段,即用户不可更改,但可以通过tab切换到该字段,还可以选中复制该字段 step 输入合法的数字间隔,当step属性的值为负数或0时默认为1,可以配合max,min属性来创建合 ...

  7. 【WPF学习】第六十一章 组织模板资源

    为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院今天发布公告,决定2020年4月4日举行全国性哀悼活动. 当使用控件模板时,需要决定如何更广泛地共享模板,以及是否希望自动地 ...

  8. SimpleITK中术语

    在SimpleITK中,各术语对应如下: Width: 宽度,X轴,矢状面Height: 高度,Y轴,冠状面Depth: 深度, Z轴,横断面 引用自:https://blog.csdn.net/Ji ...

  9. Java 异常处理与输入输出

    一.异常 1.1 package exception; import java.util.Scanner; public class ArrayIndex { public static void m ...

  10. XXE白盒审计 PHP

    XXE与XML注入的区别 https://www.cnblogs.com/websecurity-study/p/11348913.html XXE又分为内部实体和外部实体.我简单区分为内部实体就是自 ...