版权声明:本文为博主原创文章,未经博主允许不得转载。 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。
{
NSString * path = PATH;
NSURL * url = NSURLURLWithString:path;
request1 = ASIHTTPRequestrequestWithURL:url;
request1.delegate =self;
//开始异步请求 对应的还有同步请求
request1 startAsynchronous;
}
//实现协议中的方法
{
NSLog(@"获取数据成功");
}
{
NSLog(@"获取数据失败");
}
{
NSData * data =request1.responseData;
NSDictionary * dic = NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingMutableContainerserror:nil;
NSArray * arr = dic objectForKey:@"users";
dataSourceaddObjectsFromArray:arr;
tablereloadData;// 数据源中数据发生改变,表格必须刷新,以更新数据