使用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. 实现委托方法
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. 实现委托方法
[代码]c#/cpp/oc代码:
01 | - ( void )connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { |
02 | // store data |
03 | [self.receivedData setLength:0]; //通常在这里先清空接受数据的缓存 |
04 | } |
05 | |
06 | - ( void )connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { |
07 | /* appends the new data to the received data */ |
08 | [self.receivedData appendData:data]; //可能多次收到数据,把新的数据添加在现有数据最后 |
09 | } |
10 |
11 | - ( void )connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { |
12 | // 错误处理 |
13 | } |
14 |
15 | - ( void )connectionDidFinishLoading:(NSURLConnection *)connection { |
16 | // disconnect |
17 | [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; |
18 | NSString *returnString = [[NSString alloc] initWithData:self.receivedData encoding:NSUTF8StringEncoding]; |
19 | NSLog(returnString); |
20 | [self urlLoaded:[self urlString] data:self.receivedData]; |
21 | firstTimeDownloaded = YES; |
22 | } |