前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDWebImage\ASIHttpRequest是第三方库

SDWebImage\ASIHttpRequest是第三方库

作者头像
用户1451823
发布2018-09-13 17:23:34
5570
发布2018-09-13 17:23:34
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1338206

第三方库可能采用了MRC,这时需要我们进行ARC与MRC的混编,-fno-objc-arc。

SDWebImage是一个第三方类库。这个类库中提供了一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。 导入这个类库中的#import"UIImageView+WebCache.h"  可以将请求下来的图片放在缓存区中,等待解析。这个第三方库中有一个setImageWithURL的方法,这是异步请求,需要先将图片的完整地址从字符串转换成NSURL,速度更快相比于同步请求。(同步请求需要先将字符串转换成NSURL,再将URL转换成NSData,最后将NSData转换成NSImage).

-(void)pressBtn:(id)sender

{

//点击导航条上的按钮后开始获取网址下的数据

//<1>

NSString * path =@"http://yl.cms.palmtrends.com/api_v2.php?action=lastest_list&sa=news&offset=1&count=15&uid=10288928&platform=a";

//<2>

NSURL * url = NSURLURLWithString:path;

//<3>

NSURLRequest * request = NSURLRequestrequestWithURL:url;

//<4>

    NSURLConnectionconnectionWithRequest:request delegate:self;

}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

{

NSLog(@"开始");

if(myData ==nil)

    {

myData = [NSMutableDataallocinit];

    }

else

    {

myData.length =0;

    }

}

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{

    myData appendData:data;

}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection

{

NSLog(@"请求结束");

NSDictionary * dic = NSJSONSerializationJSONObjectWithData:myDataoptions:NSJSONReadingMutableContainerserror:nil;

NSArray * array = dic objectForKey:@"list";

    dataSourceaddObjectsFromArray:array;

    tablereloadData;

}

在使用ASI获取数据的时候不仅要导入ASIHttpRequest这个第三方库,还要导入一些框架. 使用ASI同样要遵守协议,实现三个必须实现的方法.  不过现在ASI不再更新了,用的更多的是AFN。

  • (void)pressBarButton:(id)sender

{

NSString * path = PATH;

NSURL * url = NSURLURLWithString:path;

request1 = ASIHTTPRequestrequestWithURL:url;

request1.delegate =self;

//开始异步请求 对应的还有同步请求

    request1 startAsynchronous;

}

//实现协议中的方法

  • (void)requestStarted:(ASIHTTPRequest *)request

{

NSLog(@"获取数据成功");

}

  • (void)requestFailed:(ASIHTTPRequest *)request

{

NSLog(@"获取数据失败");

}

  • (void)requestFinished:(ASIHTTPRequest *)request

{

NSData * data =request1.responseData;

NSDictionary * dic = NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingMutableContainerserror:nil;

NSArray * arr = dic objectForKey:@"users";

    dataSourceaddObjectsFromArray:arr;

    tablereloadData;// 数据源中数据发生改变,表格必须刷新,以更新数据

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年09月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档