次のコードを使用して、NSURLSessionUploadTask を使用して画像をアップロードしています
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
NSLog(@"Success: %@ %@", response, responseObject);
}
}];
[uploadTask resume];
私のファイルはサーバーに正しくアップロードされますが、アップロードの進行中にアプリが強制終了された場合、セッション識別子を取得してから再開した後、アップロードの状態を復元できません。
グーグルで調べたところ、アップロードが中断された場合、(アプリの再起動後に) 以下のデリゲート メソッドが呼び出されることがわかりましたが、私の場合、このメソッドは呼び出されないようです。
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
didCompleteWithError:(nullable NSError *)error;
セッション ID を識別するために正しい方法を使用していますか、それとも要件を実装するための他の方法がありますか?