现在的位置: 首页 > 综合 > 正文

[iOS]网络编程专题:使用NSConnection下载数据

2017年11月14日 ⁄ 综合 ⁄ 共 1514字 ⁄ 字号 评论关闭

使用NSConnection下载数据 
    
    1.创建NSConnection对象,设置委托对象 
    
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[self urlString]]]; 
    [NSURLConnection connectionWithRequest:request delegate:self]; 
    
    2. NSURLConnection delegate委托方法 
        - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;  
        - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;  
        - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;  
        - (void)connectionDidFinishLoading:(NSURLConnection *)connection;  

    3. 实现委托方法 
    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 
        // store data 
        [self.receivedData setLength:0];            //通常在这里先清空接受数据的缓存 
    } 
    
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
           /* appends the new data to the received data */ 
        [self.receivedData appendData:data];        //可能多次收到数据,把新的数据添加在现有数据最后 
    } 

    - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { 
        // 错误处理 
    } 

    - (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
        // disconnect 
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;   
        NSString *returnString = [[NSString alloc] initWithData:self.receivedData encoding:NSUTF8StringEncoding]; 
        NSLog(returnString); 
        [self urlLoaded:[self urlString] data:self.receivedData]; 
        firstTimeDownloaded = YES; 
    }

抱歉!评论已关闭.