首页 > 代码库 > 下载的方法

下载的方法

   1.下载些文本数据把它们转化字符串

NSString  *str=[NSString  stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];

    2.下载一些图片,音视频的数据变为data类型存起来

_data =[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://f.hiphotos.baidu.com/image/w%3D310/sign=b6af04fe0b23dd542173a169e108b3df/c9fcc3cec3fdfc03eff99b22d63f8794a5c226a2.jpg"]];

    3.同步方法,需要一个request

 NSURLRequest *request=[NSURLRequest requestWithURL:url1]

 

 

 NSData *data2=[NSURLConnection  sendSynchronousRequest:request returningResponse:&response error:&error];

    4.异步下载的方法,这就是一条语句

    [NSURLConnection  sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError)

        Firth

  {    

         Third       //这个data参数就是下载数据所处地方

        NSString *str3=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

 

   }];  Second

它的执行顺序就如上 First Second Third  在下载开始后就一直往后执行,直到等下载完成后再跳回里面来执行 ‘Third‘

    5.这个也是异步下载,不过它需要实行协议< NSURLConnectionDataDelegate>中的方法来取值

NSURLConnection *connection=[[NSURLConnection alloc]initWithRequest:request delegate:self]; ’这个delegate就是协议指针‘

    [connection start];

下面几个方法都是可选方法

 

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

{

 只有出错才会到这里

}

 

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

{  //如果是多目标下载 可以通过参数connection 来判断下载来自哪个请求

    NSLog(@"Total length: %lld", [response expectedContentLength]);  //网页不是正常的文件长度可能出人意料

    _totalLength = response.expectedContentLength;

}

 

}

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

- (void)connectionDidFinishLoading:(NSURLConnection *)connection