从网络读取数据


逻辑:

首先创建一个NSURL地址,发送request请求,然后调用         

                       - (void)connection:(NSURLConnection *)connection didReceiveData:(NSMutableData *)data 

把下载的数据存储到 NSDate 对象中,当下载完成后执行    

                       - (void)connectionDidFinishLoading:(NSURLConnection *)connection  方法,

假如连接出现错误:                     

                       - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error



实现:

[cpp]  view plain copy
  1. //定义一个NSDate对象  
  2. NSMutableData *buffer;  
  3.   
  4. /*=========------------------==============*/  
  5. - (void)viewDidLoad  
  6. {  
  7.     //调用down方法  
  8.     [self Down];  
  9.     //初始化 buffer  
  10.     buffer = [[NSMutableData alloc]init];  
  11.     [super viewDidLoad];  
  12. }  
  13.   
  14. -(void) Down  
  15. {  
  16.     //创建url    
  17.     NSURL *url = [NSURL URLWithString:@"http://192.168.67.3:8080/movie/3.mp4"];  
  18.     //基于http的连接请求  
  19.     NSURLRequest* request = [[NSURLRequest alloc]initWithURL:url];  
  20.     //创建 connection 会话  
  21.     NSURLConnection* connection = [[NSURLConnection alloc]initWithRequest:request   
  22.                                                                  delegate:self];  
  23.       
  24.     //释放  
  25.     [connection release];  
  26.     [request release];  
  27. }  
  28. //提供一个NSData, 封装了刚从连接上收到的字节块  
  29. //下载添加数据的时候会产生一个数据回调(它是一部分一部分的下载),直到数据全部下载完成  
  30. - (void)connection:(NSURLConnection *)connection   
  31.     didReceiveData:(NSMutableData *)data  
  32. {  
  33.     //buffer 是一个可以修改的data 数据,把从网络上下载的数据 data 添加进去  
  34.     [buffer appendData:data];  
  35. }  
  36.   
  37. //基于http的会话已经完成会执行(就是下载完成)  
  38. - (void)connectionDidFinishLoading:(NSURLConnection *)connection  
  39. {  
  40.     //创建一个文件,  指定路径,名称,和内容  
  41.     [[NSFileManager defaultManager]createFileAtPath:@"/tmp/movie.mp4" contents:buffer attributes:nil];  
  42. }  
  43.   
  44. //当网络连接不成功或出现异常的时候会调用,提供一个NSError以解释失败的原因  
  45. - (void)connection:(NSURLConnection *)connection   
  46.   didFailWithError:(NSError *)error  
  47. {  
  48.     //加载的是一个警告框  
  49.     UIAlertView *errorAlert = [[UIAlertView alloc]  
  50.                                initWithTitle: [error localizedDescription]  
  51.                                message: [error localizedFailureReason]  
  52.                                delegate:nil  
  53.                                cancelButtonTitle:@"OK"  
  54.                                otherButtonTitles:nil];  
  55.     [errorAlert show];  
  56.     [errorAlert release];  
  57.       
  58. }  

转自:http://blog.csdn.net/like7xiaoben/article/details/7591315



你可能感兴趣的:(网络,url,存储)