2

次のコードを使用して、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 を識別するために正しい方法を使用していますか、それとも要件を実装するための他の方法がありますか?

4

0 に答える 0