86 大文件下载(不合理方式)

来源:互联网 发布:多媒体网络教室软件 编辑:程序博客网 时间:2024/05/18 03:34
1>文件下载,不合理的方式,主要是使用NSURLConnection实现数据的下载,声明一个NSMUtabledata的属性来接收服务器返回的数据,最后在进行其他操作,对于一个大文件,这样做会耗费大量的内存!以下是实现方式:- (IBAction)start {    NSURL *url = [NSURL URLWithString:@"http://192.168.1.101:8080/MJServer/resources/videos/minion_01.mp4"];    // 默认就是GET请求    NSURLRequest *request = [NSURLRequest requestWithURL:url];    [NSURLConnection connectionWithRequest:request delegate:self];}#pragma mark - NSURLConnectionDataDelegate 代理方法/** *  请求错误(失败)的时候调用(请求超时\断网\没有网, 一般指客户端错误) */- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{}/** *  当接受到服务器的响应(连通了服务器)就会调用 */- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{    self.fileData = [NSMutableData data];}/** *  当接受到服务器的数据就会调用(可能会被调用多次, 每次调用只会传递部分数据) */- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{    [self.fileData appendData:data];}/** *  当服务器的数据接受完毕后就会调用 */- (void)connectionDidFinishLoading:(NSURLConnection *)connection{    // 下载完毕    // 大文件不放Documents, 可以放Library\Caches或者tmp    NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];    NSString *filepath = [caches stringByAppendingPathComponent:@"video.zip"];    [self.fileData writeToFile:filepath atomically:YES];}
0 0
原创粉丝点击