バックグラウンドでファイルをダウンロードするように構成されています.ダウンロードタスクがユーザーによってキャンセルされた場合、すべてのデータが削除され、ファイルが使用していたストレージスペースが解放されますが、アプリがマルチタスクドックから閉じられた場合NSURLSession
、ダウンロードNSURLSessionDownloadTask
タスクが終了してエラーが発生しますが、データは削除されておらず、ファイルの一時データはまだストレージ領域を占有しており、解放されていません。スペースを解放するにはどうすればよいですか?
これは私のNSURLSession
構成とエラー処理です:
- (NSURLSession *)backgroundSession {
static NSURLSession *session = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSURLSessionConfiguration *configuration;
if ([[UIDevice currentDevice].systemVersion hasPrefix:@"7"]) configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"com.visyon.pr"];
else configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.visyon.pr"];
configuration.sessionSendsLaunchEvents =YES;
session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
});
return session; }
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error {
if (error == nil) {
NSLog(@"Task: %@ completed successfully", task );
} else {
// [self hideActivity];
// [self showAlertBoxErrorDownload];
NSLog(@"Task: %@ completed with error: %@, %lu", task, [error localizedDescription], (long)error.code);
} self.downloadTask = nil; }