1. 首先签订 NSURLConnectionDataDelegate 协议
3. viewDidLoad 方法中发送下载请求 代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
// 发送 下载请求 并 设置代理
[NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://120.25.226.186:32812/resources/videos/minion_01.mp4"]] delegate:self];
}
4. 实现三个代理方法, 代码如下:
#pragma mark - <NSURLConnectionDataDelegate>
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
/** response.suggestedFilename : 服务器那边的文件名 */
// 文件路径
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSString *file = [caches stringByAppendingPathComponent:response.suggestedFilename];
// 利用NSOutputStream往Path中写入数据(append为YES的话,每次写入都是追加到文件尾部)
self.stream = [[NSOutputStream alloc] initToFileAtPath:file append:YES];
// 打开流(如果文件不存在,会自动创建)
[self.stream open];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[self.stream write:[data bytes] maxLength:data.length];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[self.stream close];
}