NSURLConnection

#import <Foundation/Foundation.h>
#import "DataManagerProtocol.h"
@interface DataManager : NSObject<NSURLConnectionDataDelegate>
{
    //加载网络数据
    NSURLConnection *_connection;
    
    //存储网络数据
    NSMutableData *_mutData;
}
//开始加载网络数据
-(void)startLoadWebData:(NSString *)strURL;
@property(strong,nonatomic)id<DataManagerProtocol>delegate;

@end


#import "DataManager.h"

@implementation DataManager

-(void)startLoadWebData:(NSString *)strURL
{
    _mutData=[[NSMutableData alloc]init];
    
    //初使化网络链接
    
    NSURL *url=[NSURL URLWithString:strURL];
    NSURLRequest *request=[[NSURLRequest alloc]initWithURL:url];
    _connection=[[NSURLConnection alloc]initWithRequest:request delegate:self];
    
}


#pragma mark NSURLConnectionDataDelegate
//404 域名错误
//500 服务器错误
//200 正常

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    //返回服务器状态信息
    NSHTTPURLResponse *req=(NSHTTPURLResponse *)response;
    NSLog(@"%i",[req statusCode]);
    //清空数据
    _mutData.length=0;
}

//该方法当时加载大数据时,可能被调用多次
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [_mutData appendData:data];
}

//网络数据加载结束时调用该方法
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    //解析网络数据
    NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:_mutData options:NSJSONReadingMutableContainers error:nil];
    NSLog(@"%@",dict);
    NSArray *array=[dict objectForKey:@"users"];
    [self.delegate recvieWebData:array];
    
}
 
    //实例化业务逻辑
    _dataManager =[[DataManager alloc]init];
    _dataManager.delegate=self;
    //请求后台数据
    [_dataManager startLoadWebData:@"http://10.0.8.8/sns/my/user_list.php?page=1&number=5"];


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    MyCell *cell=[tableView dequeueReusableCellWithIdentifier:@"strIdentifier"];
    //从数据源中获得数据
    NSDictionary *dict=[_array objectAtIndex:indexPath.row];
    cell.upLabel.text=[dict objectForKey:@"username"];
    cell.downLabel.text=[dict objectForKey:@"credit"];
    //加载网络图片
    NSString *imageURL=[NSString stringWithFormat:@"http://10.0.8.8/sns%@",[dict objectForKey:@"headimage"]];
    NSURL *url=[NSURL URLWithString:imageURL];
    //将网址对应的图片加载计算机内从
    NSData *data=[[NSData alloc]initWithContentsOfURL:url];
    UIImage *image=[[UIImage alloc]initWithData:data];
    cell.imgView.image=image;
    
    return cell;
    
}
原文地址:https://www.cnblogs.com/y16879w/p/4482520.html