В моем приложении iOS я использую библиотеку AFNetworking
для управления необходимыми операциями HTTP.
Я создал метод для загрузки файла:
+ (void)downloadFile:(File *)file progress:(void (^)(NSUInteger receivedBytes, long long totalReceivedBytes, long long totalExpectedBytes))progress success:(void (^)())success failure:(void (^)(NSError *error))failure
{
NSURLRequest *request = [NSURLRequest requestWithURL:file.url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:[FCFileManager pathForTemporaryDirectoryWithPath:file.key.lastPathComponent] append:NO];
[operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead)
{
progress(bytesRead, totalBytesExpectedToRead, totalBytesExpectedToRead);
}];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
{
success();
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
failure(error);
}];
[operation start];
}
Хотя, есть проблема с этим методом. Если загрузка отменена (принудительный выход), файл все еще можно найти в каталоге приложения. Как создать загрузку файла, чтобы сохранить файл в каталог документов только после успешного завершения загрузки?