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;
        
    }
  • 相关阅读:
    Qt通用方法及类库9
    设计模式原则(7)--Composition&AggregationPrinciple(CARP)--合成&聚合复用原则
    设计模式原则(6)--Open-Closed Principle(OCP)--开闭原则
    鼠标悬停出现页面
    设计模式(23)--Visitor--访问者模式--行为型
    设计模式(22)--Template Method(模板方法模式)--行为型
    设计模式(21)--Strategy(策略模式)--行为型
    设计模式(20)--State(状态模式)--行为型
    设计模式(19)--Observer(观察者模式)--行为型
    设计模式(18)--Memento(备忘录模式)--行为型
  • 原文地址:https://www.cnblogs.com/y16879w/p/4482520.html
Copyright © 2011-2022 走看看