zoukankan      html  css  js  c++  java
  • 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;
        
    }
  • 相关阅读:
    [JSOI2010]解题报告+2010~2011小结
    有用的东西(emacs配置和bzoj数据下载网址)
    [JSOI2011]解题报告
    [JSOI2010]旅行题解
    [BOI2007]Mokia题解
    分块总结
    统计数字
    爬不出去的水井
    采药
    沙漠储油点
  • 原文地址:https://www.cnblogs.com/y16879w/p/4482520.html
Copyright © 2011-2022 走看看