ios中ASIHTTPRequst的封装
#import <Foundation/Foundation.h>
#import "ASIHTTPRequest.h"
#import "ASIDownloadCache.h"
typedef void (^MyBlock)(UIImage *image); @interface AsyncDownLoading : NSObject
+(id)ShareAsyncDownload;
-(void)LoadImageWithUrl:(NSString *)url;
@property(nonatomic,copy)MyBlock imageBlock;
@end
#import "AsyncDownLoading.h"
@implementation AsyncDownLoading
+(id)ShareAsyncDownload{
static dispatch_once_t onceToken;
static AsyncDownLoading *downLoad=nil;
dispatch_once(&onceToken, ^{
downLoad=[[AsyncDownLoadingalloc] init];
});
return downLoad;
}
//暂时没有用
-(NSString *)cacheFileForImage:(NSString *)imageUrl{
NSString *cacheFolder=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
cacheFolder=[cacheFolder stringByAppendingPathComponent:@"imagecache"];
NSFileManager *fmgr=[NSFileManagerdefaultManager];
if (![fmgr fileExistsAtPath:cacheFolder]) {
[fmgr createDirectoryAtPath:cacheFolder withIntermediateDirectories:YESattributes:nilerror:nil];
}
NSArray *paths=[imageUrl componentsSeparatedByString:@"/"];
NSString *saveStr= [[paths lastObject] length]>0?[paths lastObject]:@"";
return [NSString stringWithFormat:@"%@/%@",cacheFolder,saveStr];
}
-(void)LoadImageWithUrl:(NSString *)url{
__block ASIHTTPRequest *Request=nil;
if(url){
Request=[ASIHTTPRequestrequestWithURL:[NSURLURLWithString:url]];
[Request setDelegate: self];
//设置下载缓存
[Request setDownloadCache:[ASIDownloadCachesharedCache]];
// 设置缓存策略
[Request setCachePolicy:ASIOnlyLoadIfNotCachedCachePolicy];
//设置指定存储方式
[Request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
//在后台也运行
[Request setShouldContinueWhenAppEntersBackground:YES];
[Request setTimeOutSeconds:60];
[Request setCompletionBlock:^{
if([Request didUseCachedResponse]){
NSLog(@"缓存");
}
else{
NSLog(@"重新创建");
}
NSLog(@"--1--%@",[NSThreadcurrentThread]);
UIImage *image=[UIImageimageWithData:[Request responseData]];
self.imageBlock(image);
}];
[Request setFailedBlock:^{
NSLog(@"请求失败error-->%@",Request.error.localizedDescription);
}];
[Request startAsynchronous];
}
}
-(void)dealloc
{
Block_release(self.imageBlock);
[super dealloc];
}
@end
- (IBAction)clicki2:(id)sender {
AsyncDownLoading *down=[AsyncDownLoading ShareAsyncDownload];
down.imageBlock=^(UIImage *image){
self.img1.image=image;
};
[down LoadImageWithUrl:@"http://h.hiphotos.baidu.com/album/w%3D2048/sign=45753fa7e850352ab1612208677bfaf2/2e2eb9389b504fc2aae48015e4dde71190ef6d62.jpg"];
}
ios中ASIHTTPRequst的封装的更多相关文章
- ios中tableview网封装(viewcontroller封装)常用的
下载地址 http://pan.baidu.com/share/link?shareid=3657500168&uk=923776187 使用框架 1:asIHttpRequest库 2;SB ...
- iOS中 用FMDB封装一个SQLite数据库
建立一个单例: DataBaseHandle.h #import <Foundation/Foundation.h> @class PersonModel; @class FMDataba ...
- QF——iOS中的数据库操作:SQLite数据库,第三方封装库FMDB,CoreData
SQLite数据库: SQLite是轻量级的数据库,适合应用在移动设备和小型设备上,它的优点是轻量,可移植性强.但它的缺点是它的API是用C写的,不是面向对象的.整体来说,操作起来比较麻烦.所以,一般 ...
- 转载 -- iOS中SDK的简单封装与使用
一.功能总述 在博客开始的第一部分,我们先来看一下我们最终要实现的效果.下图中所表述的就是我们今天博客中要做的事情,下方的App One和App Two都植入了我们将要封装的LoginSDK, 两个A ...
- iOS中数据库应用基础
iOS 数据库入门 一.数据库简介 1.什么是数据库? 数据库(Database) 是按照数据结构来组织,存储和管理数据的仓库 数据库可以分为2大种类 关系型数据库(主流) PC端 Oracle My ...
- iOS 中的 HotFix 方案总结详解
相信HotFix大家应该都很熟悉了,今天主要对于最近调研的一些方案做一些总结.iOS中的HotFix方案大致可以分为四种: WaxPatch(Alibaba) Dynamic Framework(Ap ...
- Quartz 2D在ios中的使用简述二:创建画布
在iOS中使用Quartz画图时,第一步就是要获取画布(图形上下文),然后再画布上做各种操作.先看下CoreGraphics.h这个头文件,就可以知道能够创建多少种上下文类型. #include &l ...
- 谈谈iOS中的锁
1 前言 近日工作不是太忙,刚好有时间了解一些其他东西,本来打算今天上午去体检,但是看看天气还是明天再去吧,也有很大一个原因:就是周六没有预约上!闲话少说,这里简单对锁来个简单介绍分享. 2 目录 第 ...
- iOS中的数据持久化方式
iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data. 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults ...
随机推荐
- CentOS6 安装并破解Jira 7
CentOS6 安装并破解Jira 7 JIRA软件是为您的软件团队的每个成员构建的,用来规划,跟踪和发布优秀的软件. https://confluence.atlassian.... 最低硬件要求及 ...
- Android -- Property Animation
3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:property animation,这三 ...
- 【Java】Java-fastjson-基本使用方法
Java-fastjson-基本使用方法 fastjson maven_百度搜索 Maven Repository: com.alibaba » fastjson » 1.2.44 fastjson ...
- 【大数据】大数据处理-Lambda架构-Kappa架构
大数据处理-Lambda架构-Kappa架构 elasticsearch-head Elasticsearch-sql client NLPchina/elasticsearch-sql: Use S ...
- LynxFly科研小四轴横空出世,开源,F4,WIFI --(转)
首先是一大堆的感谢,太多人的帮助,感谢不完了----首先要说明,这个PCB工程的出现要感谢论坛上的台湾大哥 john800422 开源了自己的飞控板的工程文件,我这样的没啥基础的小弟们才能学会如何制板 ...
- js闭包的使用
js闭包的使用 学习了:https://www.cnblogs.com/ZinCode/p/5551907.html 终于用上了闭包,还是有些生涩:好像柿子还没熟: function createLi ...
- ASP.NET Hashtable输出JSON格式数据
最近在开发Windows8 Metro App,使用JavaScript和HTML开发环境.所以操作数据绑定都是使用JSON格式数据.后台使用的是ASP.NET,因为项目相对较小,所有后台没有使用数据 ...
- 【树莓派】树莓派上面安装配置teamviewer
访问树莓派桌面,的另一种方式,就是使用Teamviewer. 参考这篇文章做了实验:http://www.linuxdiyf.com/linux/16887.html,对其中部分进行了件要整理和总结. ...
- Android原生webview中js交互
http://www.cnblogs.com/android-blogs/p/4891264.html Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中, ...
- strus2 struts.xml详解
<struts> <!-- 配置一个包:package --> <package name="demo1" extends="struts- ...