2

ダウンロード タスクを作成しました。アプリケーションでタスクをキャンセルし、cancelByProducingResumeDataディスクに保存しました。ユーザーがアプリケーションを再起動して再開ボタンをクリックすると、ダウンロード タスクが再び開始されましたself.downloadTask = [session downloadTaskWithResumeData:resumableData];。しかし、これはエラーになります。

Invalid resume data for background download. Background downloads must use http or https and must download to an accessible file

編集:tmpシミュレーターのディレクトリにdownloadDataが含まれていることを確認しましたが、それにアクセスできません。

4

1 に答える 1

0

resuminDataの tmpファイルのアプリケーション リンクを再起動した後は無効ですresuminDataのフィールド「NSURLSessionResumeInfoLocalPath」を、tmp ファイルの正しいパスに変更します。

使用する:

NSMutableDictionary* resumeDictionary = [NSPropertyListSerialization propertyListWithData:resumingData options:NSPropertyListMutableContainers format:NULL error:&error];
...
NSString* badFilePath = [resumeDictionary objectForKey:@"NSURLSessionResumeInfoLocalPath"];
...
[resumeDictionary setObject:trueTmpfile forKey:@"NSURLSessionResumeInfoLocalPath"];
...
NSData* newResumingData = [NSPropertyListSerialization dataFromPropertyList:resumeDictionary format:NSPropertyListXMLFormat_v1_0 errorDescription:&errorDesc];
于 2015-08-17T11:03:03.750 に答える