我正在开发一个iOS应用程序,我必须在设备上本地下载图像和视频等大数据。数据可以是GB,可以下载数千个文件。那么,什么是解决这种情况的最佳方法。因为它可能有很多失败,比如请求超时等等。
此外,如果文件已成功下载,我必须更新核心数据。
任何最好和最简单的方法将不胜感激。
答案 0 :(得分:1)
尝试一下AFNetworking框架,为您处理几乎所有内容,并且可能更快地实现。
也可以使用GCD在后台线程上下载。我下载50Mb文件时得到了不错的结果。
答案 1 :(得分:0)
您可以使用AFNetworking。它是现在处理Web服务的最佳API。您可以从github和。下载适用于iOS的最新AFNetworking API。
你可以使用
- (void)uploadImageAtUrl:(NSURL*)url
{
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"yourImg.jpg"], 0.5);
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:imageData name:@"yourImg" fileName:@"yourImg.jpg" mimeType:@"image/jpeg"];
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
//Check progress
NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
[httpClient enqueueHTTPRequestOperation:operation];
}