static NSURLSessionConfiguration *configuration = nil;
static AFURLSessionManager *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{//这里的参数只初始化一次,多次就会崩溃
configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"tumblr"];
manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
});
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull uploadProgress) {
// This is not called back on the main queue.
// You are responsible for dispatching to the main queue for UI updates
dispatch_async(dispatch_get_main_queue(), ^{
//Update the progress view
NSLog(@"Progress:%f",uploadProgress.fractionCompleted);
});
}destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
NSLog(@"File downloaded to: %@", filePath);
}];
[downloadTask resume];
static AFURLSessionManager *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{//这里的参数只初始化一次,多次就会崩溃
configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"tumblr"];
manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
});
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull uploadProgress) {
// This is not called back on the main queue.
// You are responsible for dispatching to the main queue for UI updates
dispatch_async(dispatch_get_main_queue(), ^{
//Update the progress view
NSLog(@"Progress:%f",uploadProgress.fractionCompleted);
});
}destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
NSLog(@"File downloaded to: %@", filePath);
}];
[downloadTask resume];